首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

怎么读取xml的值

2013-03-06 
如何读取xml的值XML文件如下:?xml version1.0 encodingutf-8?parenttitlewwwwww/titleauth

如何读取xml的值

XML文件如下:
<?xml version="1.0" encoding="utf-8"?>
<parent>
  <title>wwwwww</title>
  <author>admin</author>
  <contentall>
    <vc1>1</vc1>
    <vc2>2</vc2>
  </contentall>
</parent>

使用js,我如何读取contentall标签里面的vc1,vc2的值了? xml encoding js
[解决办法]
function impFlow(){
var form = new Ext.form.FormPanel({
     baseCls : 'x-plain',
     labelWidth : 70,
     fileUpload : true,
     defaultType : 'textfield',
     items : [{
        xtype : 'textfield',
        fieldLabel : '流程文件名',
        name : 'xmlFile',
        id : 'xmlFile',
        inputType : 'file',
        blankText : '文件不能为空。',
        anchor : '100%'
       }]
});
 
var win = new Ext.Window({
     title : '请选择xml文件',
     width : 400,
     height : 110,
     minWidth : 300,
     minHeight : 100,
     layout : 'fit',
     plain : true,
     bodyStyle : 'padding:5px;',
     buttonAlign : 'center',
     items : form,
     buttons : [{
     text : '打开',
     handler : function() {
     if (form.form.isValid()) {
     if(Ext.getCmp('xmlFile').getValue() == ''){
     Ext.Msg.alert('错误','请选择你要读取的文件');
     return;
     }
     xmlPath = getPath(document.getElementById('xmlFile'));
     var arr = xmlPath.split('.');
     if(arr[arr.length-1] == 'xml'){
     testProcess = loadXML(xmlPath);
     XmlToProcess(testProcess);
     win.close();
     }else{
     Ext.Msg.alert('错误','您选择的文件不是xml文件');
     }
     }
      }
     }, {
     text : '关闭',
     handler : function() {
     win.close();
      }
    }]


});
win.show();
}

//获取文件的绝对路径
function getPath(obj) {
if (obj) {
if (window.navigator.userAgent.indexOf("MSIE") >= 1) {
obj.select(); 
obj.blur();
return document.selection.createRange().text;

else if (window.navigator.userAgent.indexOf("Firefox") >= 1) { 
if (obj.files) { 
return obj.files.item(0).getAsDataURL();
}
return obj.value;
}
return obj.value; 
}
}  

//加载XML文件里面的内容
function loadXML(path) {    
    var xmlDoc;   
    if (window.ActiveXObject) {   
    xmlDoc=new ActiveXObject("Msxml2.DOMDocument");   
        xmlDoc.async=true;   
        xmlDoc.load(path);   
        return xmlDoc.xml; 
    }
}

上面用的是EXTJS做的界面改成你自己的就行了,下面的两个方法不是EXTJS的
[解决办法]


$(function() {
        $.ajax({
            type:'GET',
            url:'data.xml',
            dataType:'xml',
            success:function(data){
                var _items = data.getElementsByTagName('contentall');
                for(var i = 0 ; i < _items.length ; ++i){
                    for(var j = 0 ; j < _items[i].childNodes.length ; ++j){
                        if(_items[i].childNodes[j].nodeType==1){
                         if(window.ActiveXObject){
                                alert(_items[i].childNodes[j].nodeName + '  ' + _items[i].childNodes[j].text);
                            }else{
                                alert(_items[i].childNodes[j].nodeName + '  ' + _items[i].childNodes[j].textContent);
                            }
                        }
                    }


                }
            }
        });
    });


[解决办法]
$.ajax(
          {
              url: "XMLFile1.xml",
              dataType: "xml",
              error: function (xml) {
                  alert('Error loading XML document' + xml);
              },
              success: function (xml) {
                  var frag = $("<ul/>");
                  //遍历所有contentall节点
                  $(xml).find("contentall").each(function (i) {
                      //获取VC1节点
                      var VC1 = $(this).children("VC1").text();
                      ///获取VC1节点
                      var VC2 = $(this).children("VC2").text();
                      });
                  //最后得到的frag添加进HTML文档中
                  $('#Div1').html(frag);
              }
          });

热点排行