日期:2014-05-18  浏览次数:20836 次

(菜鸟) c#.net操作xml问题
xml里面:
<A>
<B>
<C>a</C>
<D></D>
<E></E>
</B>
<B>
<C>b</C>
<D></D>
<E></E>
</B>
...
</A>
我现在想向其中插入节点
<B>
<C>c</C>
<D></D>
<E></E>
</B>
我现在用的XmlDocument直接打开Xml文件 然后读取文件 建立节点
但是有个问题是 我不确定xml里面B节点有没有一个<C>c</C>的节点 有的话我就只修改该B节点中的属性值 没有才添加 
新手 求验证是否存在的方法....

------解决方案--------------------
C# code

            XmlDocument xml = new XmlDocument();
            xml.Load("1.xml");

            XmlNodeList xl = xml.SelectNodes(@"A/B/C");

            bool bfound = false;
            XmlNode xnfd = null;
            foreach (XmlNode xn in xl)
            {
                if(xn.InnerText.Equals("c"))
                {
                    bfound = true;
                    xnfd = xn;
                    break;
                }

            }

            if(bfound)
            {
                xnfd.InnerText = "newc";
                xml.Save("1.xml");
            }
            else
            {
                //没有,加新的
            }

------解决方案--------------------
C# code

            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("XMLFile1.xml");
            var elmtsB = xmlDoc.SelectNodes("//B");
            foreach (XmlNode elB in elmtsB)
            {
                foreach (XmlNode el in elB.ChildNodes)
                {
                    if (el.Name == "C")
                    {
                        Console.WriteLine("It has C");
                        break;
                    }                    
                }                 
            }