MSXML操作XML的完整例子

来源:互联网 发布:青海干部网络培训平台 编辑:程序博客网 时间:2024/05/21 03:54

许多新手对MSXML如何操作XML不太了解。我下面把一些常用的操作整理成一个例子,供大家参考。

假设XML文件名:test.xml

<?xml version="1.0" encoding="UTF-8"?>
<books>
 <book>
  <name>哈里波特</name>
  <price>10</price>
  <memo>这是一本很好看的书。</memo>
 </book>
 <book id="B02">
  <name>三国演义</name>
  <price>10</price>
  <memo>四大名著之一。</memo>
 </book>
 <book id="B03">
  <name>水浒</name>
  <price>6</price>
  <memo>四大名著之一。</memo>
 </book>
 <book id="B04">
  <name>红楼</name>
  <price>5</price>
  <memo>四大名著之一。</memo>
 </book>
</books> 

  下面是JS操作XML的代码:

 <script language="javascript">
var theBook, theElem, root;
var xmldoc=new ActiveXObject("MSXML2.DOMDOCUMENT.3.0");
xmldoc.async=false;
xmldoc.load("test.xml");
root=xmldoc.documentElement;
alert(xmldoc.xml)
//---  新建一本书开始 ----
theBook=xmldoc.createElement("book");
theElem=xmldoc.createElement("name");//创建元素name
theElem.text="新书";//设置name的文本值为"新书"
theBook.appendChild(theElem);//把name添加到theBook下面

theElem=xmldoc.createElement("price");
theElem.text="20";
theBook.appendChild(theElem);

theElem=xmldoc.createElement("memo");
theElem.text="新书的更好看。";
theBook.appendChild(theElem);
root.appendChild(theBook);
alert(xmldoc.xml);
//---  新建一本书完成 ----

//---  下面对《哈里波特》做一些修改。 ----
//---  查询找《哈里波特》----
theBook=root.selectSingleNode("/books/book[name='哈里波特']");
alert(theBook.xml);
//---  此时修改这本书的价格 -----
theBook.childNodes[1].text="15";//price是第二个元素,即childNodes[1]
alert(theBook.xml);
//---  另外还想加一个属性id,值为B01 ----
theBook.setAttribute("id", "B01");
alert(theBook.xml);
//---  对《哈里波特》修改完成。 ----

//---  要用id属性删除《三国演义》这本书  ----
theBook=root.selectSingleNode("/books/book[@id='B02']");
alert(theBook.xml);
theBook.parentNode.removeChild(theBook);
alert(xmldoc.xml);

//---  再将所有价格低于10的书删除  ----
var someBooks=root.selectNodes("/books/book[price<10]");
someBooks.removeAll();
alert(xmldoc.xml);

//xmldoc.save("test3.xml"); //保存,受权限限制,一般只在ASP中使用。
</script>

原创粉丝点击