|
|
 |
|
 |
本文由中国C#技术学习中心整理 如果你对本文有不明之处请到技术论坛讨论!
我用的是一种很笨的方法,但可以帮助初学者了解访问XML节点的过程.
已知有一个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" ); XmlElement xe1=xmlDoc.CreateElement( "book" ); xe1.SetAttribute( "genre","李赞红" ); xe1.SetAttribute( "ISBN","2-3631-4" );
XmlElement xesub1=xmlDoc.CreateElement( "title" ); xesub1.InnerText="CS从入门到精通"; xe1.AppendChild( xesub1 ); 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 ); 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>
2、修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点<author>的文本修改为“亚胜”. XmlNodeList nodeList=xmlDoc.SelectSingleNode( "bookstore" ).ChildNodes; foreach( XmlNode xn in nodeList ){ XmlElement xe=( XmlElement )xn; if( xe.GetAttribute( "genre" )=="李赞红" ) { xe.SetAttribute( "genre","update李赞红" ); XmlNodeList nls=xe.ChildNodes; 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>
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" ); } 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>
4、显示所有数据. 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 ); } }
本文由中国C#技术学习中心整理 如果你对本文有不明之处请到技术论坛讨论!
|
|