我有一个xml文档,其记录集如此。
<document>
<row>
<Pub_Code>OHB-A0011</Pub_Code>
<Sec>16</Sec>
<Pags>20</Pags>
<Copies>1,000</Copies>
<Binding>Saddle Stitch</Binding>
<Tab>No tabs</Tab>
<Qty>0</Qty>
<Cover>Self Cover</Cover>
<Tpgs>0</Tpgs>
</row>
</document>
我有这样的linq查询:
string xml_path = @"D:\Server-Apps\BooksData.xml";
XElement root = XElement.Load(xml_path);
var selected = from myBooks in root.Elements("row") where myBooks.Element("Pub_Code").Value == "OHB-A0011" select myBooks;
foreach (var d in selected)
{
Console.WriteLine("Pub_Code: {0}", d.Element("Pub_Code").Value);
Console.WriteLine("Cover: {0}", d.Element("Cover").Value);
d.SetElementValue("Tpgs", "test");
}
我可以读取值find但是当我使用d.SetElementValue(“Tpgs”,“test”)时;什么都没有更新。 标签已经在xml文件中。
答案 0 :(得分:2)
如果要将更新的XML保存回文件,则需要执行以下操作:
root.Save(xml_path);
我在程序结束时添加了一行,它似乎正常工作。