• C# xml解析


    http://blog.csdn.net/qqshenyunzcz/archive/2010/02/23/5319444.aspx

    已知有一个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>     
          
    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>     
          
    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>     
          
    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);//显示子节点点文本     
        }     
       }    
    已知有一个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>  
       
    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>  
       
    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>  
       
    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);//显示子节点点文本  
        }  
       }  
  • 相关阅读:
    [BZOJ 3282] Tree 【LCT】
    [BZOJ 2049] [Sdoi2008] Cave 洞穴勘测 【LCT】
    [BZOJ 1036] [ZJOI2008] 树的统计Count 【Link Cut Tree】
    [HDOJ
    Excel+DDT数据驱动实例
    jenkins+SVN配置
    [转]loadrunner:系统的平均并发用户数和并发数峰值如何估算
    loadrunner:Auto Correlate自动定位瓶颈
    loadrunner:判断是否服务器连接池瓶颈
    利用page_source抓取网页中的URL,进行链接测试
  • 原文地址:https://www.cnblogs.com/sharpfeng/p/1992653.html
Copyright © 2020-2023  润新知