a.xml
<n>
  <user>
    <name>a1</name>
    <qq>0</qq>
  </user>
<user>
    <name>a2</name>
    <qq>0</qq>
  </user>
</n>
现在想在后台(c#)修改name=a1节点的qq为123456.不知如何做.请高手帮忙.分数不多了,
如<user>
    <name>a1</name>
    <qq>123456</qq>
  </user>

解决方案 »

  1.   

    private void button1_Click(object sender, EventArgs e)
    {
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load("a.xml");    XmlNodeList nodeList = xmlDoc.SelectSingleNode("n//user").ChildNodes;    //遍历所有子节点
        foreach (XmlNode xn in nodeList)
        {
            //将子节点类型转换为XmlElement类型
            XmlElement xe = xn as XmlElement;
            if (xe.Name == "name")
            {
                if (xe.InnerText.Trim() == "a1")
                {
                     //确认qq结点在近跟name节点之后
                    (xe.NextSibling as XmlElement).InnerText = "123456";
                }
            }
        }
        xmlDoc.Save("a.xml");
    }
      

  2.   

    private void button1_Click(object sender, EventArgs e)
    {
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load("test.xml");    XmlNodeList nodeList = xmlDoc.SelectSingleNode("n//user").ChildNodes;    //遍历所有子节点
        foreach (XmlNode xn in nodeList)
        {
            //将子节点类型转换为XmlElement类型
            XmlElement xe = xn as XmlElement;
            if (xe.Name == "name")
            {
                if (xe.InnerText.Trim() == "a1")
                {
                    //确认qq节点近跟在name节点之后
                    (xe.NextSibling as XmlElement).InnerText = "123456";
                }
            }
        }
        xmlDoc.Save("test.xml");
    }
      

  3.   

    又发现问题了,foreach (XmlNode xn in nodeList)
        {
    }
    这里不管有多少子节只循环两次