更新特定的XML元素,而不关心那里有什么价值

时间:2014-05-31 06:23:13

标签: xml c#-4.0 linq-to-xml xelement

虽然有很多关于如何做到这一点的例子,但我似乎陷入困境,我找不到任何可以帮助我的东西。我想更新索引的值而不测试它以前的值。我知道这一定很容易,但我很难过。

我最初创建我的xml文档

XDocument master;
master = new XDocument(
    new XDeclaration("1.0", "utf-8", "yes"),
    new XElement("ERoot",
    new XElement("EHeader"),
    new XElement("EData")));
master.Save(MasterXml);

然后添加索引节点

myIndex = 0;
XElement treename = XElement.Load(MasterXml);
XElement head = treename.Element("EHeader");

head.Add(new XElement("Index", myIndex));
treename.Save(MasterXml);

,XML文件看起来不错

<?xml version="1.0" encoding="UTF-8"?>
<ERoot> 
    <EHeader> 
        <Index>0</Index> 
    </EHeader> 
    <EData/> 
</ERoot>

那么,如何在不考虑之前的值的情况下更新Index值。我看到的所有例子都是选择...... something.Value ==“0”......我可能不知道它是什么。我只是想覆盖和重视可能存在的东西。

由于

1 个答案:

答案 0 :(得分:1)

尝试

master.Element("ERoot").Element("EHeader").Element("Index").SetValue(3);

master.Descendants("Index").First().SetValue(3);

P.S。你不能通过

获得元素EHeader
treename.Element("EHeader");

必须是

treename.Element("ERoot").Element("EHeader");