js添加修改删除xml节点例子

Posted 素而安然

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js添加修改删除xml节点例子相关的知识,希望对你有一定的参考价值。

version="1.0" encoding="gb2312"?>   
02.  <bookstore>   
03.   <book genre="fantasy" isbn="2-3631-4">   
04.      <title>Oberons Legacy</title>   
05.      <author>Corets, Eva</author>   
06.      <price>5.95</price>   
07.    </book genre="fantasy" isbn="2-3631-4">   
08.  </bookstore>   
09.   
10. 1、往<bookstore>节点中插入一个<book>节点:   
11.    XmlDocument xmlDoc=new XmlDocument();   
12.    xmlDoc.Load("bookstore.xml");   
13.    XmlNode root=xmlDoc.SelectSingleNode("bookstore");//查找<bookstore>   
14.    XmlElement xe1=xmlDoc.CreateElement("book");//创建一个<book>节点   
15.    xe1.SetAttribute("genre","李赞红");//设置该节点genre属性   
16.    xe1.SetAttribute("ISBN","2-3631-4");//设置该节点ISBN属性   
17.    
18.   XmlElement xesub1=xmlDoc.CreateElement("title");   
19.    xesub1.InnerText="CS从入门到精通";//设置文本节点   
20.    xe1.AppendChild(xesub1);//添加到<book>节点中   
21.    XmlElement xesub2=xmlDoc.CreateElement("author");   
22.    xesub2.InnerText="候捷";   
23.    xe1.AppendChild(xesub2);   
24.    XmlElement xesub3=xmlDoc.CreateElement("price");   
25.    xesub3.InnerText="58.3";   
26.    xe1.AppendChild(xesub3);   
27.    
28.   root.AppendChild(xe1);//添加到<bookstore>节点中   
29.    xmlDoc.Save("bookstore.xml");   
30.  //===============================================   
31.  结果为:   
32. <!--?xml version="1.0" encoding="gb2312"?-->   
33.  <bookstore>   
34.   <book genre="fantasy" isbn="2-3631-4">   
35.      <title>Oberons Legacy</title>   
36.      <author>Corets, Eva</author>   
37.      <price>5.95</price>   
38.    </book genre="fantasy" isbn="2-3631-4">   
39.    <book genre="李赞红" isbn="2-3631-4">   
40.      <title>CS从入门到精通</title>   
41.      <author>候捷</author>   
42.      <price>58.3</price>   
43.    </book genre="李赞红" isbn="2-3631-4">   
44.  </bookstore>   
45.   
46. 2、修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点<author>的文本修改为“亚胜”。   
47.      XmlNodeList nodeList=xmlDoc.SelectSingleNode("bookstore").ChildNodes;//获取bookstore节点的所有子节点   
48.    foreach(XmlNode xn in nodeList)//遍历所有子节点   
49.    {   
50.     XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型   
51.      if(xe.GetAttribute("genre")=="李赞红")//如果genre属性值为“李赞红”   
52.      {   
53.      xe.SetAttribute("genre","update李赞红");//则修改该属性为“update李赞红”   
54.    
55.     XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点   
56.      foreach(XmlNode xn1 in nls)//遍历   
57.      {   
58.        XmlElement xe2=(XmlElement)xn1;//转换类型   
59.        if(xe2.Name=="author")//如果找到   
60.        {   
61.        xe2.InnerText="亚胜";//则修改   
62.        break;//找到退出来就可以了   
63.        }   
64.      }   
65.      break;   
66.      }   
67.    }   
68.   
69.   xmlDoc.Save("bookstore.xml");//保存。   
70.  //==================================================   
71.  最后结果为:   
72. <!--?xml version="1.0" encoding="gb2312"?-->   
73.  <bookstore>   
74.   <book genre="fantasy" isbn="2-3631-4">   
75.      <title>Oberons Legacy</title>   
76.      <author>Corets, Eva</author>   
77.      <price>5.95</price>   
78.    </book genre="fantasy" isbn="2-3631-4">   
79.    <book genre="update李赞红" isbn="2-3631-4">   
80.      <title>CS从入门到精通</title>   
81.      <author>亚胜</author>   
82.      <price>58.3</price>   
83.    </book genre="update李赞红" isbn="2-3631-4">   
84.  </bookstore>   
85.   
86. 3、删除 <book genre="fantasy" isbn="2-3631-4">节点的genre属性,删除 <book genre="update李赞红" isbn="2-3631-4">节点。   
87.  XmlNodeList xnl=xmlDoc.SelectSingleNode("bookstore").ChildNodes;   
88.    
89.   foreach(XmlNode xn in xnl)   
90.    {   
91.     XmlElement xe=(XmlElement)xn;   
92.      if(xe.GetAttribute("genre")=="fantasy")   
93.      {   
94.      xe.RemoveAttribute("genre");//删除genre属性   
95.      }   
96.      else if(xe.GetAttribute("genre")=="update李赞红")   
97.      {   
98.      xe.RemoveAll();//删除该节点的全部内容   
99.      }   
100.    }   
101.   xmlDoc.Save("bookstore.xml");   
102.  //===========================================   
103.  最后结果为:   
104. <!--?xml version="1.0" encoding="gb2312"?-->   
105.  <bookstore>   
106.   <book isbn="2-3631-4">   
107.      <title>Oberons Legacy</title>   
108.      <author>Corets, Eva</author>   
109.      <price>5.95</price>   
110.    </book isbn="2-3631-4">   
111.    <book>   
112.    </book>   
113.  </bookstore>   
114.   
115. 4、显示所有数据。   
116.   XmlNode xn=xmlDoc.SelectSingleNode("bookstore");   
117.    
118.   XmlNodeList xnl=xn.ChildNodes;   
119.    
120.   foreach(XmlNode xnf in xnl)   
121.    {   
122.     XmlElement xe=(XmlElement)xnf;   
123.      Console.WriteLine(xe.GetAttribute("genre"));//显示属性值   
124.      Console.WriteLine(xe.GetAttribute("ISBN"));   
125.    
126.     XmlNodeList xnf1=xe.ChildNodes;   
127.      foreach(XmlNode xn2 in xnf1)   
128.      {   
129.      Console.WriteLine(xn2.InnerText);//显示子节点点文本   
130.      }   
131.    } </book genre="update李赞红" isbn="2-3631-4"></book genre="fantasy" isbn="2-3631-4"></author></bookstore></book></book></bookstore></book></bookstore>  

 

以上是关于js添加修改删除xml节点例子的主要内容,如果未能解决你的问题,请参考以下文章

详解SimpleXML添加_修改_删除_遍历XML节点属性

Android之DOM解析XML

Android之DOM解析XML

使用 XSLT 删除 XML 节点文本

VS中添加自定义代码片段——偷懒小技巧

从 xml 片段中删除 html 标签? [复制]