XML的简单读取与写入的详解

互联网 17-3-2
已知有一个xml文件(bookstore.xml)如下:
<?xml version="1.0" encoding="gb2312"?>  <bookstore>  <book genre="fantasy" ISBN="2-3631-4">  <title>Oberon's Legacy</title>  <author>Corets, Eva</author>  <PRice>5.95</price>  </book>  </bookstore>

1、往<bookstore>节点中插入一个<book>节点:

XmlDocument xmlDoc=new XmlDocument();  xmlDoc.Load("bookstore.xml");  XmlNode root=xmlDoc.SelectSingleNode("bookstore");//查找<bookstore>  XmlElement xe1=xmlDoc.CreateElement("book");//创建一个<book>节点  xe1.SetAttribute("genre","李赞红");//设置该节点genre属性  xe1.SetAttribute("ISBN","2-3631-4");//设置该节点ISBN属性  XmlElement xesub1=xmlDoc.CreateElement("title");  xesub1.InnerText="CS从入门到精通";//设置文本节点  xe1.AppendChild(xesub1);//添加到<book>节点中  XmlElement xesub2=xmlDoc.CreateElement("author");  xesub2.InnerText="候捷";  xe1.AppendChild(xesub2);  XmlElement xesub3=xmlDoc.CreateElement("price");  xesub3.InnerText="58.3";  xe1.AppendChild(xesub3);  root.AppendChild(xe1);//添加到<bookstore>节点中  xmlDoc.Save("bookstore.xml");

//===============================================结果为:

<?xml version="1.0" encoding="gb2312"?>  <bookstore>  <book genre="fantasy" ISBN="2-3631-4">  <title>Oberon's Legacy</title>  <author>Corets, Eva</author>  <price>5.95</price>  </book>  <book genre="李赞红" ISBN="2-3631-4">  <title>CS从入门到精通</title>  <author>候捷</author>  <price>58.3</price>  </book>  </bookstore>
<author>的文本修改为“亚胜”。  XmlNodeList nodeList=xmlDoc.SelectSingleNode("bookstore").ChildNodes;//获取bookstore节点的所有子节点  foreach(XmlNode xn in nodeList)//遍历所有子节点  {  XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型  if(xe.GetAttribute("genre")=="李赞红")//如果genre属性值为“李赞红”  {  xe.SetAttribute("genre","update李赞红");//则修改该属性为“update李赞红”  XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点  foreach(XmlNode xn1 in nls)//遍历  {  XmlElement xe2=(XmlElement)xn1;//转换类型  if(xe2.Name=="author")//如果找到  {  xe2.InnerText="亚胜";//则修改  break;//找到退出来就可以了  }  }  break;  }  }
<?xml version="1.0" encoding="gb2312"?>  <bookstore>  <book genre="fantasy" ISBN="2-3631-4">  <title>Oberon's Legacy</title>  <author>Corets, Eva</author>  <price>5.95</price>  </book>  <book genre="update李赞红" ISBN="2-3631-4">  <title>CS从入门到精通</title>  <author>亚胜</author>  <price>58.3</price>  </book>  </bookstore>
XmlNodeList xnl=xmlDoc.SelectSingleNode("bookstore").ChildNodes;  foreach(XmlNode xn in xnl)  {  XmlElement xe=(XmlElement)xn;  if(xe.GetAttribute("genre")=="fantasy")  {  xe.RemoveAttribute("genre");//删除genre属性  }  else if(xe.GetAttribute("genre")=="update李赞红")  {  xe.RemoveAll();//删除该节点的全部内容  }  }  xmlDoc.Save("bookstore.xml");

//===========================================最后结果为:

<?xml version="1.0" encoding="gb2312"?>  <bookstore>  <book ISBN="2-3631-4">  <title>Oberon's Legacy</title>  <author>Corets, Eva</author>  <price>5.95</price>  </book>  <book>  </book>  </bookstore>
XmlNode xn=xmlDoc.SelectSingleNode("bookstore");  XmlNodeList xnl=xn.ChildNodes;  foreach(XmlNode xnf in xnl)  {  XmlElement xe=(XmlElement)xnf;  Console.WriteLine(xe.GetAttribute("genre"));//显示属性值  Console.WriteLine(xe.GetAttribute("ISBN"));  XmlNodeList xnf1=xe.ChildNodes;  foreach(XmlNode xn2 in xnf1)  {  Console.WriteLine(xn2.InnerText);//显示子节点点文本  }  }

以上就是XML的简单读取与写入的详解的内容,更多相关内容请关注PHP中文网(www.php.cn)!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:获取mssql的xml返回结构的方法

相关资讯