现在的位置: 首页 > 综合 > 正文

JS操作Xml文件 (1)

2018年06月09日 ⁄ 综合 ⁄ 共 4975字 ⁄ 字号 评论关闭
其中的Xml文件Search.xml,它的内容如下:

<?xml version="1.0" encoding="utf-8" ?>

<WorkInfo>
  <WorkInfoName>
    <WorkId>1</WorkId>
    <xml>newflow.xml</xml>
  </WorkInfoName>
  <WorkInfoName>
    <WorkId>2</WorkId>
    <xml>2.xml</xml>
  </WorkInfoName>
  <WorkInfoName>
    <WorkId>3</WorkId>
    <xml>3.xml</xml>
  </WorkInfoName>
  <WorkInfoName>
    <WorkId>4</WorkId>
    <xml>4.xml</xml>
  </WorkInfoName>

</WorkInfo>

读取Xml文件中的某一个节点:

 function ready()
 {
           // 加载xml文档
        loadXML = function(xmlFile)
        {
        var xmlDoc;
        if(window.ActiveXObject)
        {
        xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
        xmlDoc.async = false;
        xmlDoc.load(xmlFile);
        }
        else if (document.implementation&&document.implementation.createDocument)
        {
        xmlDoc = document.implementation.createDocument('', '', null);
        xmlDoc.load(xmlFile);
        }
        else
        {
        return null;
        }
        return xmlDoc;
        }
                  // 首先对xml对象进行判断
            checkXMLDocObj = function(xmlFile)
            {
            var xmlDoc = loadXML(xmlFile);
            if(xmlDoc==null)
            {

              alert('您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!');

            }
            return xmlDoc;
            }

              // 然后开始获取需要的Login/Weapon/W的第一个节点的属性值

            var xmlDoc = checkXMLDocObj('Search.xml');
            var v = xmlDoc.getElementsByTagName('WorkInfo/WorkInfoName')[0].childNodes.item(1).text ;
            alert (v);
 }

 

 

用表格显示xml文件 遍历其中的任何一个节点:

function ParseXML(xmldoc)
   {
     var dv=document.getElementById('dvTB'),innerHTML='<table border="1"><tr align="center"><td>WorkId</td><td>xml</td></tr>',node
     ,employee=xmldoc.getElementsByTagName("WorkInfoName");//获取所有WorkInfoName标签
     //遍历employee
   for(var i=0;i<employee.length;i++){

     node=employee[i].getElementsByTagName("WorkId")[0];//获取当前节点下的所有job节点,因为此节点下只有一个job,所以索引为0
     node=node.firstChild;//注意文本节点也算一个节点,所以还得使用firstChild
     innerHTML+='<tr><td>'+node.nodeValue+'</td>';//获取job节点内的内容
     //同理获取该employee节点下的salary节点,上面为了说明,多分了几个步骤,下面就简化了
     innerHTML+='<td>'+employee[i].getElementsByTagName("xml")[0].firstChild.nodeValue+'</td>';
     innerHTML+='</tr>';//闭合tr
   }  
   innerHTML+='</table>';//闭合table
   //设置div的innerHTML属性
   dv.innerHTML=innerHTML;

      
   }
   function loadXML(url)
 {
 var xmldoc;
 if(document.implementation&&document.implementation.createDocument){
  xmldoc=document.implementation.createDocument("","",null);
  xmldoc.onload=function(){ParseXML(xmldoc);}
  xmldoc.load(url);
 }
 else if(window.ActiveXObject){
  xmldoc=new ActiveXObject("Microsoft.XMLDOM");
  xmldoc.onreadystatechange=function(){if(xmldoc.readyState==4)ParseXML(xmldoc);}
  xmldoc.load(url);
 }
}

window.onload=function(){loadXML("search.xml");}

 

 

 

向xml中加入一个节点:

 function aa()
   {
         // 加载xml文档
        loadXML = function(xmlFile)
        {
        var xmlDoc;
        if(window.ActiveXObject)
        {
        xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
        xmlDoc.async = false;
        xmlDoc.load(xmlFile);
        }
        else if (document.implementation&&document.implementation.createDocument)
        {
        xmlDoc = document.implementation.createDocument('', '', null);
        xmlDoc.load(xmlFile);
        }
        else
        {
        return null;
        }
        return xmlDoc;
        }
                  // 首先对xml对象进行判断
            checkXMLDocObj = function(xmlFile)
            {
            var xmlDoc = loadXML(xmlFile);
            if(xmlDoc==null)
            {

              alert('您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!');
            }
            return xmlDoc;
            }

              // 然后开始获取需要的Login/Weapon/W的第一个节点的属性值

            var xmlDoc = checkXMLDocObj('Search.xml');
  
        var book = xmlDoc.createElement("book");
        var category = xmlDoc.createAttribute("category");
        category.nodeValue = "WEB";
        book.setAttributeNode(category);

        var title = xmlDoc.createElement("title");
        var titleAtt = xmlDoc.createAttribute("lang");
        titleAtt.nodeValue = "XML Dom";
        title.setAttributeNode(titleAtt);
        var titleTxt = xmlDoc.createTextNode("W3");
        title.appendChild(titleTxt);

        var author = xmlDoc.createElement("author");
        var authorTxt = xmlDoc.createTextNode("W3School");
        author.appendChild(authorTxt);

        var year = xmlDoc.createElement("year");
        var yearTxt =xmlDoc.createTextNode("2004");
        year.appendChild(yearTxt);

        var price = xmlDoc.createElement("price");
        var priceTxt = xmlDoc.createTextNode("32");
        price.appendChild(priceTxt);

        book.appendChild(title);
        book.appendChild(author);
        book.appendChild(year);
        book.appendChild(price);

        var root = xmlDoc.documentElement;
        root.appendChild(book);
        document.write("<xmp>" + xmlDoc.xml + "</xmp>");

   }

 

创建Xml文件:

  function cc()
   {
     //创建方法一
    var xmldoc=new ActiveXObject("Microsoft.XMLDOM");
    xmldoc.async = false;
    xmldoc.load("temp1.xml");
    
    var p=xmldoc.createProcessingInstruction("xml","version='1.0' encoding='gb2312'");//创建声明
    xmldoc.appendChild(p);//添加声明

     var root = xmldoc.createElement("students");
      xmldoc.appendChild(root);
       var book = xmldoc.createElement("book");
        var category = xmldoc.createAttribute("category");
        category.nodeValue = "WEB";
        book.setAttributeNode(category);

        var title = xmldoc.createElement("title");
        var titleAtt = xmldoc.createAttribute("lang");
        titleAtt.nodeValue = "XML Dom";
        title.setAttributeNode(titleAtt);
        var titleTxt = xmldoc.createTextNode("W3");
        title.appendChild(titleTxt);

        var author = xmldoc.createElement("author");
        var authorTxt = xmldoc.createTextNode("W3School");
        author.appendChild(authorTxt);

        var year = xmldoc.createElement("year");
        var yearTxt =xmldoc.createTextNode("2004");
        year.appendChild(yearTxt);

        var price = xmldoc.createElement("price");
        var priceTxt = xmldoc.createTextNode("32");
        price.appendChild(priceTxt);

        book.appendChild(title);
        book.appendChild(author);
        book.appendChild(year);
        book.appendChild(price);
         root.appendChild(book);
    
    //保存方法二
    var fso=new ActiveXObject("Scripting.FileSystemObject");
    var ts=fso.createTextFile("C:/temp2.xml",true);
    ts.write(xmldoc.xml);
    ts.close();


   }

 

 

这个网址上也有比较多的介绍:http://www.w3school.com.cn/x.asp

【上篇】
【下篇】

抱歉!评论已关闭.