日期:2014-05-17  浏览次数:20917 次

C#修改指定XML同一级别的子节点的值
问题如图,来大神

------解决方案--------------------
XmlDocument doc = new XmlDocument();
doc.Load(@"c:\1.xml");
XmlNodeList list = doc.DocumentElement.GetElementByTagName("Item"); 

foreach(Xmlnode node in list)
{
  if(node.ChildNodes[0].InnerText = "Price")
  {
       node.InnerText = "20"  ;
  }
}
------解决方案--------------------
xml文件应该成对出现,你那个是不对的。把xml文件放到debug/bin目录下,运行如下代码即可。
<?xml version="1.0" encoding="utf-8"?>
<items>
  <item>
    <title>毛著</title>
    <author>毛泽东</author>
    <price>10.00</price>
  </item>
  <item>
    <title>流浪记</title>
    <author>三毛</author>
    <price>20</price>
  </item>
</items>

static void Main(string[] args)
        {
            XElement element = XElement.Load("test.xml");
            IEnumerable result = from p in element.Elements("item")
                                 select p;
            foreach (XElement el in result)
            {
                if (el.Elements("title").FirstOrDefault().Value == "流浪记")
                {
                    el.Elements("price").FirstOrDefault().SetValue("20");