您当前的位置: 首页 >  c#

衣舞晨风

暂无认证

  • 0浏览

    0关注

    1156博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C# 关于XML遍历新增节点,修改属性小例

衣舞晨风 发布时间:2014-01-08 09:46:12 ,浏览量:0

XML样例:



  
    CS从入门到精通
    候捷
    58.3
  
  
    CS从入门到精通
    小六
    58.3
  
  
    CS从入门到精通
    大黄
    58.3
  

测试代码:
	    XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("E:\\bookstore.xml");
	    //获取bookstore节点的所有子节点
            XmlNodeList nodeList = xmlDoc.SelectSingleNode("bookstore").ChildNodes;
            for (int i = 0; i < nodeList.Count; i++)//遍历每个book节点
            {   //将子节点类型转换为XmlElement类型
                XmlElement xe = (XmlElement)nodeList.Item(i);
                if (xe.Name == "book")
                {   //如果genre属性值为“李赞红”
                    if (xe.GetAttribute("genre") == "李赞红")
                    {    //继续获取xe子节点的所有子节点
                        XmlNodeList nls = xe.ChildNodes;
                        for (int j = 0; j < nls.Count; j++)
                        {
                            XmlElement xe2 = (XmlElement)nls.Item(j);//转换类型
                            //title、author、price都会在xe2.Name中取到
                            if (xe2.Name == "author")//如果找到
                            {
                                xe2.InnerText = "Karli Waston";//则修改
                            }
                            else //如果不存在则新建
                            {
                                xe2.SetAttribute("NewAttribute", "新增属性");
                            }
                        }
                    }
                    else
                    {
                        //如果genre属性值不为“李赞红”,则修改为李赞红
                        xe.SetAttribute("genre", "李赞红");
                    }
                }
                else //如果不存在book节点,则在该节点下新增一个book下级节点
                {
                    XmlElement subElement = xmlDoc.CreateElement("因为这个节点不是book");
                    subElement.InnerXml = "BigDog";
                    xe.AppendChild(subElement);
                }
            }
            xmlDoc.Save("E:\\bookstore.xml");//保存。
修改后的XML:



  
    CS从入门到精通
    候捷
    58.3
  
  
    CS从入门到精通
    Karli Waston
    58.3
  
  
    CS从入门到精通
    大黄
    58.3
    BigDog
  
如果现在根节点下新增某个节点,代码如下:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("E:\\bookstore.xml");
XmlNode root = xmlDoc.DocumentElement;
XmlElement subElement = xmlDoc.CreateElement("根节点下新增");
subElement.InnerXml = "BigDog";
root.AppendChild(subElement);

关注
打赏
1647422595
查看更多评论
立即登录/注册

微信扫码登录

0.0636s