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");
}
}
element.Save("test.xml");
}