知识大全 在C#.net中操作XML实例

Posted 结点

篇首语:亦余心之所善兮,虽九死其犹未悔。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在C#.net中操作XML实例相关的知识,希望对你有一定的参考价值。

在C#.net中操作XML实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在中如何操作XML    需要添加的命名空间     using System Xml;

  定义几个公共对象     XmlDocument xmldoc ;    XmlNode xmlnode ;    XmlElement xmlelem ;

   创建到服务器同名目录下的xml文件

  方法一     xmldoc = new XmlDocument ( ) ;    //加入XML的声明段落    xmlnode = xmldoc CreateNode ( XmlNodeType XmlDeclaration ) ;    xmldoc AppendChild ( xmlnode ) ;    //加入一个根元素    xmlelem = xmldoc CreateElement ( Employees ) ;    xmldoc AppendChild ( xmlelem ) ;    //加入另外一个元素    for(int i= ;i< ;i )   

  XmlNode root=xmldoc SelectSingleNode( Employees );//查找<Employees>    XmlElement xe =xmldoc CreateElement( Node );//创建一个<Node>节点    xe SetAttribute( genre 李赞红 );//设置该节点genre属性    xe SetAttribute( ISBN );//设置该节点ISBN属性

  XmlElement xesub =xmldoc CreateElement( title );    xesub InnerText= CS从入门到精通 ;//设置文本节点    xe AppendChild(xesub );//添加到<Node>节点中    XmlElement xesub =xmldoc CreateElement( author );    xesub InnerText= 候捷 ;    xe AppendChild(xesub );    XmlElement xesub =xmldoc CreateElement( price );    xesub InnerText= ;    xe AppendChild(xesub );

  root AppendChild(xe );//添加到<Employees>节点中        //保存创建好的XML文档    xmldoc Save ( Server MapPath( data xml ) ) ;

  //////////////////////////////////////////////////////////////////////////////////////    结果 在同名目录下生成了名为data xml的文件 内容如下     <?xml version= ?>    <Employees>    <Node genre= 李赞红 ISBN= >    <title>CS从入门到精通</title>    <author>候捷</author>    <price> </price>    </Node>    <Node genre= 李赞红 ISBN= >    <title>CS从入门到精通</title>    <author>候捷</author>    <price> </price>    </Node>    </Employees>

  方法二     XmlTextWriter xmlWriter;    string strFilename = Server MapPath( data xml ) ;

  xmlWriter = new XmlTextWriter(strFilename Encoding Default);//创建一个xml文档    xmlWriter Formatting = Formatting Indented;    xmlWriter WriteStartDocument();    xmlWriter WriteStartElement( Employees );

  xmlWriter WriteStartElement( Node );    xmlWriter WriteAttributeString( genre 李赞红 );    xmlWriter WriteAttributeString( ISBN );

  xmlWriter WriteStartElement( title );    xmlWriter WriteString( CS从入门到精通 );    xmlWriter WriteEndElement();

  xmlWriter WriteStartElement( author );    xmlWriter WriteString( 候捷 );

  xmlWriter WriteEndElement();

  xmlWriter WriteStartElement( price );    xmlWriter WriteString( );    xmlWriter WriteEndElement();

  xmlWriter WriteEndElement();

  xmlWriter Close();    //////////////////////////////////////////////////////////////////////////////////////    结果     <?xml version= encoding= gb ?>    <Employees>    <Node genre= 李赞红 ISBN= >    <title>CS从入门到精通</title>    <author>候捷</author>    <price> </price>    </Node>    </Employees>

 

   添加一个结点

  XmlDocument xmlDoc=new XmlDocument();    xmlDoc Load(Server MapPath( data xml ));    XmlNode root=xmlDoc SelectSingleNode( Employees );//查找<Employees>    XmlElement xe =xmlDoc CreateElement( Node );//创建一个<Node>节点    xe SetAttribute( genre 张三 );//设置该节点genre属性    xe SetAttribute( ISBN );//设置该节点ISBN属性

  XmlElement xesub =xmlDoc CreateElement( title );    xesub InnerText= C#入门帮助 ;//设置文本节点    xe AppendChild(xesub );//添加到<Node>节点中    XmlElement xesub =xmlDoc CreateElement( author );    xesub InnerText= 高手 ;    xe AppendChild(xesub );    XmlElement xesub =xmlDoc CreateElement( price );    xesub InnerText= ;    xe AppendChild(xesub );

  root AppendChild(xe );//添加到<Employees>节点中    xmlDoc Save ( Server MapPath( data xml ) );

  //////////////////////////////////////////////////////////////////////////////////////    结果 在xml原有的内容里添加了一个结点 内容如下     <?xml version= ?>    <Employees>    <Node genre= 李赞红 ISBN= >    <title>CS从入门到精通</title>    <author>候捷</author>    <price> </price>    </Node>    <Node genre= 李赞红 ISBN= >    <title>CS从入门到精通</title>    <author>候捷</author>    <price> </price>    </Node>    <Node genre= 张三 ISBN= >    <title>C#入门帮助</title>    <author>高手</author>    <price> </price>    </Node>    </Employees>

   修改结点的值(属性和子结点)

  XmlDocument xmlDoc=new XmlDocument();    xmlDoc Load( Server MapPath( data xml ) );

  XmlNodeList nodeList=xmlDoc SelectSingleNode( Employees ) ChildNodes;//获取Employees节点的所有子节点

  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 xn in nls)//遍历        XmlElement xe =(XmlElement)xn ;//转换类型    if(xe Name== author )//如果找到        xe InnerText= 亚胜 ;//则修改                    xmlDoc Save( Server MapPath( data xml ) );//保存

  //////////////////////////////////////////////////////////////////////////////////////    结果 将原来的所有结点的信息都修改了 xml的内容如下     <?xml version= ?>    <Employees>    <Node genre= 李赞红 ISBN= >    <title>CS从入门到精通</title>    <author>候捷</author>    <price> </price>    </Node>    <Node genre= 李赞红 ISBN= >    <title>CS从入门到精通</title>    <author>候捷</author>    <price> </price>    </Node>    <Node genre= update张三 ISBN= >    <title>C#入门帮助</title>    <author>亚胜</author>    <price> </price>    </Node>    </Employees>

 

   修改结点(添加结点的属性和添加结点的自结点)     XmlDocument xmlDoc=new XmlDocument();    xmlDoc Load( Server MapPath( data xml ) );

  XmlNodeList nodeList=xmlDoc SelectSingleNode( Employees ) ChildNodes;//获取Employees节点的所有子节点

  foreach(XmlNode xn in nodeList)        XmlElement xe=(XmlElement)xn;    xe SetAttribute( test );

  XmlElement xesub=xmlDoc CreateElement( flag );    xesub InnerText= ;    xe AppendChild(xesub);        xmlDoc Save( Server MapPath( data xml ) );

  //////////////////////////////////////////////////////////////////////////////////////    结果 每个结点的属性都添加了一个 子结点也添加了一个 内容如下     <?xml version= ?>    <Employees>    <Node genre= 李赞红 ISBN= test= >    <title>CS从入门到精通</title>    <author>候捷</author>    <price> </price>    <flag> </flag>    </Node>    <Node genre= 李赞红 ISBN= test= >    <title>CS从入门到精通</title>    <author>候捷</author>    <price> </price>    <flag> </flag>    </Node>    <Node genre= update张三 ISBN= test= >    <title>C#入门帮助</title>    <author>亚胜</author>    <price> </price>    <flag> </flag>    </Node>    </Employees>

   删除结点中的某一个属性

  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 );//删除genre属性

  XmlNodeList nls=xe ChildNodes;//继续获取xe子节点的所有子节点    foreach(XmlNode xn in nls)//遍历        XmlElement xe =(XmlElement)xn ;//转换类型    if(xe Name== flag )//如果找到        xe RemoveChild(xe );//则删除                xmlDoc Save( Server MapPath( data xml ) );

  //////////////////////////////////////////////////////////////////////////////////////]    结果 删除了结点的一个属性和结点的一个子结点 内容如下     <?xml version= ?>    <Employees>    <Node ISBN= test= >    <title>CS从入门到精通</title>    <author>候捷</author>    <price> </price>    </Node>    <Node ISBN= test= >    <title>CS从入门到精通</title>    <author>候捷</author>    <price> </price>    </Node>    <Node ISBN= test= >    <title>C#入门帮助</title>    <author>亚胜</author>    <price> </price>    </Node>    </Employees>

 

   删除结点     XmlDocument xmlDoc=new XmlDocument();    xmlDoc Load( Server MapPath( data xml ) );    XmlNode root=xmlDoc SelectSingleNode( Employees );    XmlNodeList xnl=xmlDoc SelectSingleNode( Employees ) ChildNodes;    for(int i= ;i<xnl Count;i )        XmlElement xe=(XmlElement)xnl Item(i);    if(xe GetAttribute( genre )== 张三 )        root RemoveChild(xe);    if(i<xnl Count)i=i ;            xmlDoc Save( Server MapPath( data xml ) );

  结果 删除了符合条件的所有结点 原来的内容

  <?xml version= ?>    <Employees>    <Node genre= 李赞红 ISBN= >    <title>CS从入门到精通</title>    <author>候捷</author>    <price> </price>    </Node>    <Node genre= 李赞红 ISBN= >    <title>CS从入门到精通</title>    <author>候捷</author>    <price> </price>    </Node>    <Node genre= 张三 ISBN= >    <title>C#入门帮助</title>    <author>高手</author>    <price> </price>    </Node>

  <Node genre= 张三 ISBN= >    <title>C#入门帮助</title>    <author>高手</author>    <price> </price>    </Node>    </Employees>

cha138/Article/program/net/201311/13258

相关参考

知识大全 asp.net 将一个图片以二进制值的形式存入Xml文件中的实例代码

asp.net将一个图片以二进制值的形式存入Xml文件中的实例代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一

知识大全 详谈.NET Framework处理XML操作技巧

详谈.NETFramework处理XML操作技巧  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 ASP.NET项目开发指南:C#操作XML(2)

ASP.NET项目开发指南:C#操作XML(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 ASP.NET项目开发指南:C#操作XML(1)[2]

ASP.NET项目开发指南:C#操作XML(1)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 ASP.NET项目开发指南:C#操作XML(1)[1]

ASP.NET项目开发指南:C#操作XML(1)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 C# XML序列化实例浅析

C#XML序列化实例浅析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  实现C#XML序列化技术

知识大全 ASP.NET怎么操作DataTable实例应用

ASP.NET怎么操作DataTable实例应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!有机

知识大全 Asp.Net用OWC操作Excel的实例代码

Asp.Net用OWC操作Excel的实例代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!这篇文

知识大全 .Net编写类库直接操作MySql数据库应用实例

.Net编写类库直接操作MySql数据库应用实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 ASP.NET中XML数据的处理

ASP.NET中XML数据的处理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  SqlDataS