<%-- 最新动态 Begin --%>
|
|
|
|
|
|
<%-- 最新动态 End --%>
|
<%-- 最新动态 Begin --%>
|
|
|
|
|
|
<%-- 最新动态 End --%>
|
<%-- 最新动态 Begin --%>
|
|
|
|
|
|
<%-- 最新动态 End --%>
|
|
 |
|
 |
本文由中国C#技术学习中心整理 如果你对本文有不明之处请到技术论坛讨论!
需要添加的命名空间:using System.Xml; 定义几个公共对象:XmlDocument xmldoc ; XmlNode xmlnode ; XmlElement xmlelem ; 1,创建到服务器同名目录下的xml文件: 方法一:xmldoc = new XmlDocument ( ) ; xmldoc.AppendChild (xmlnode) ; xmldoc.AppendChild (xmlelem) ; int i=1; i<3; i++ ) { XmlNode root=xmldoc.SelectSingleNode( "Employees" ); XmlElement xesub1=xmldoc.CreateElement( "title" ); xesub1.InnerText="CS从入门到精通"; xesub2.InnerText="候捷"; xe1.AppendChild( xesub2 ); XmlElement xesub3=xmldoc.CreateElement( "price" ); xesub3.InnerText="58.3"; xe1.AppendChild( xesub3 ); root.AppendChild( xe1 ); }
结果:在同名目录下生成了名为data.xml的文件,内容如下, <?xml version="1.0"?><Employees> <Node genre="李赞红" ISBN="2-3631-4"> <title>CS从入门到精通</title> <author>候捷</author> <price>58.3</price> </Node> <Node genre="李赞红" ISBN="2-3631-4">
<title>CS从入门到精通</title><author>候捷</author>
<price>58.3</price> </Node></Employees>
方法二:XmlTextWriter xmlWriter;
string strFilename = Server.MapPath( "data1.xml" ) ; xmlWriter = new XmlTextWriter( strFilename,Encoding.Default ); xmlWriter.Formatting = Formatting.Indented; xmlWriter.WriteStartDocument( ); xmlWriter.WriteStartElement( "Employees" ); xmlWriter.WriteStartElement( "Node" ); xmlWriter.WriteAttributeString( "genre","李赞红" ); xmlWriter.WriteAttributeString( "ISBN","2-3631-4" ); xmlWriter.WriteStartElement( "title" ); xmlWriter.WriteString( "CS从入门到精通" ); xmlWriter.WriteEndElement( ); xmlWriter.WriteStartElement( "author" ); xmlWriter.WriteString( "候捷" ); xmlWriter.WriteEndElement( ); xmlWriter.WriteStartElement( "price" ); xmlWriter.WriteString( "58.3" ); xmlWriter.WriteEndElement( ); xmlWriter.WriteEndElement( ); xmlWriter.Close( );
<title>CS从入门到精通</title> <author>候捷</author> <price>58.3</price> </Node></Employees> 2,添加一个结点: XmlDocument xmlDoc=new XmlDocument( ); xmlDoc.Load( Server.MapPath( "data.xml" ) ); XmlNode root=xmlDoc.SelectSingleNode( "Employees" ); XmlElement xesub1=xmlDoc.CreateElement( "title" ); xesub1.InnerText="C#入门帮助"; xesub2.InnerText="高手"; xe1.AppendChild( xesub2 ); XmlElement xesub3=xmlDoc.CreateElement( "price" ); xesub3.InnerText="158.3"; xe1.AppendChild( xesub3 );
root.AppendChild( xe1 );
结果:在xml原有的内容里添加了一个结点,内容如下, <?xml version="1.0"?><Employees> <Node genre="李赞红" ISBN="2-3631-4"> <title>CS从入门到精通</title> <author>候捷</author> <price>58.3</price> </Node> <Node genre="李赞红" ISBN="2-3631-4"> <title>CS从入门到精通</title> <author>候捷</author> <price>58.3</price> </Node> <Node genre="张三" ISBN="1-1111-1"> <title>C#入门帮助</title> <author>高手</author> <price>158.3</price> </Node></Employees> 3,修改结点的值(属性和子结点): XmlDocument xmlDoc=new XmlDocument( ); xmlDoc.Load(Server.MapPath( "data.xml" ));
XmlNodeList nodeList=xmlDoc.SelectSingleNode( "Employees" ).ChildNodes; foreach( XmlNode xn in nodeList ){ XmlElement xe=( XmlElement )xn; { xe.SetAttribute( "genre","update张三" ); XmlNodeList nls=xe.ChildNodes; { XmlElement xe2=( XmlElement )xn1; { xe2.InnerText="亚胜"; } } } } xmlDoc.Save(Server.MapPath( "data.xml" )); 结果:将原来的所有结点的信息都修改了,xml的内容如下, <?xml version="1.0"?><Employees> <Node genre="李赞红" ISBN="2-3631-4"> <title>CS从入门到精通</title> <author>候捷</author> <price>58.3</price> </Node> <Node genre="李赞红" ISBN="2-3631-4"> <title>CS从入门到精通</title> <author>候捷</author> <price>58.3</price> </Node> <Node genre="update张三" ISBN="1-1111-1"> <title>C#入门帮助</title> <author>亚胜</author> <price>158.3</price> </Node></Employees> 4,修改结点(添加结点的属性和添加结点的自结点): XmlDocument xmlDoc=new XmlDocument( ); xmlDoc.Load(Server.MapPath( "data.xml" ));
XmlNodeList nodeList=xmlDoc.SelectSingleNode( "Employees" ).ChildNodes; foreach( XmlNode xn in nodeList ) { XmlElement xe=( XmlElement )xn; xe.SetAttribute( "test","111111" ); XmlElement xesub=xmlDoc.CreateElement( "flag" ); xesub.InnerText="1"; xe.AppendChild( xesub ); } xmlDoc.Save(Server.MapPath( "data.xml" ));
结果:每个结点的属性都添加了一个,子结点也添加了一个,内容如下, <?xml version="1.0"?><Employees> <Node genre="李赞红" ISBN="2-3631-4" test="111111"> <title>CS从入门到精通</title> <author>候捷</author> <price>58.3</price> <flag>1</flag> </Node> <Node genre="李赞红" ISBN="2-3631-4" test="111111"> <title>CS从入门到精通</title> <author>候捷</author> <price>58.3</price> <flag>1</flag> </Node> <Node genre="update张三" ISBN="1-1111-1" test="111111"> <title>C#入门帮助</title> <author>亚胜</author> <price>158.3</price> <flag>1</flag> </Node></Employees> 5,删除结点中的某一个属性: XmlDocument xmlDoc=new XmlDocument( ); xmlDoc.Load(Server.MapPath( "data.xml" )); XmlNodeList xnl=xmlDoc.SelectSingleNode( "Employees" ).ChildNodes; foreach( XmlNode xn in xnl ) { XmlElement xe=( XmlElement )xn; xe.RemoveAttribute( "genre" ); XmlNodeList nls=xe.ChildNodes; { XmlElement xe2=( XmlElement )xn1; { xe.RemoveChild( xe2 ); } } } xmlDoc.Save(Server.MapPath( "data.xml" ));
结果:删除了结点的一个属性和结点的一个子结点,内容如下, <?xml version="1.0"?><Employees> <Node ISBN="2-3631-4" test="111111"> <title>CS从入门到精通</title> <author>候捷</author> <price>58.3</price> </Node> <Node ISBN="2-3631-4" test="111111"> <title>CS从入门到精通</title> <author>候捷</author> <price>58.3</price> </Node> <Node ISBN="1-1111-1" test="111111"> <title>C#入门帮助</title> <author>亚胜</author> <price>158.3</price> </Node></Employees> 6,删除结点:XmlDocument xmlDoc=new XmlDocument( ); xmlDoc.Load(Server.MapPath( "data.xml" )); XmlNode root=xmlDoc.SelectSingleNode( "Employees" ); XmlNodeList xnl=xmlDoc.SelectSingleNode( "Employees" ).ChildNodes; for( int i=0; i<xnl.Count; i++ ) { XmlElement xe=( XmlElement )xnl.Item( i ); if( xe.GetAttribute( "genre" )=="张三" ) { root.RemoveChild( xe ); if( i<xnl.Count )i=i-1; } } xmlDoc.Save(Server.MapPath( "data.xml" ));
结果:删除了符合条件的所有结点,原来的内容: <?xml version="1.0"?><Employees> <Node genre="李赞红" ISBN="2-3631-4"> <title>CS从入门到精通</title> <author>候捷</author> <price>58.3</price> </Node> <Node genre="李赞红" ISBN="2-3631-4"> <title>CS从入门到精通</title> <author>候捷</author> <price>58.3</price> </Node> <Node genre="张三" ISBN="1-1111-1"> <title>C#入门帮助</title> <author>高手</author> <price>158.3</price> </Node> <Node genre="张三" ISBN="1-1111-1"> <title>C#入门帮助</title> <author>高手</author> <price>158.3</price> </Node></Employees> 删除后的内容: <?xml version="1.0"?><Employees> <Node genre="李赞红" ISBN="2-3631-4"> <title>CS从入门到精通</title> <author>候捷</author> <price>58.3</price> </Node> <Node genre="李赞红" ISBN="2-3631-4"> <title>CS从入门到精通</title> <author>候捷</author> <price>58.3</price> </Node></Employees>
本文由中国C#技术学习中心整理 如果你对本文有不明之处请到技术论坛讨论!
|
|