XML新增、修改、删除、查询操作

int   intType =   1; 
string   strXML =   " "; 
strXML   =   " <?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> "; 


XmlDocument   xmlDocTmp=new   XmlDocument(); 
xmlDocTmp.LoadXml(strXML); 
xmlDocTmp.Save( "bookstore.xml "); 


XmlDocument   xmlDoc=new   XmlDocument(); 
xmlDoc.Load( "bookstore.xml "); 


switch(intType) 

case   1: 
//1、往 <bookstore> 节点中插入一个 <book> 节点: 
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> 


break; 


case   2: 
//2、修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点 <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; 




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= "update李赞红 "   ISBN= "2-3631-4 "> 
// <title> CS从入门到精通 </title> 
// <author> 亚胜 </author> 
// <price> 58.3 </price> 
// </book> 
// </bookstore> 


break; 


case   3: 


//3、删除   <book   genre= "fantasy "   ISBN= "2-3631-4 "> 节点的genre属性,删除   <book   genre= "update李赞红 "   ISBN= "2-3631-4 "> 节点。 
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> 


break; 


case   4: 
//4、显示所有数据。 
XmlNode   xns=xmlDoc.SelectSingleNode( "bookstore "); 


XmlNodeList   xnls=xns.ChildNodes; 


foreach(XmlNode   xnf   in   xnls) 

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); //显示子节点点文本 






break; 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值