簡體   English   中英

C#如何使用Linq更改Xml節點值

[英]C# How to change Xml node values using Linq

我怎樣才能更換節點值some value與使用LINQ另一個值。 最后,我需要一個帶有替換值的字符串。

Xml:

<ROOT>
  <A>
    <A1>
      <elementA1></elementA1>
    </A1>
    <A2>
      <elementA2>some value</elementA2>
    </A2>
  </A>
</ROOT>

C#:

XDocument xDoc = XDocument.Parse(@"<ROOT>
                                        <A>
                                          <A1>
                                            <elementA1></elementA1>
                                          </A1>
                                          <A2>
                                            <elementA2>Some value</elementA2>
                                          </A2>
                                        </A>
                                      </ROOT>");

xDoc.Elements("ROOT")
             .Elements("A")
             .Elements("A2")
             .Elements("elementA2")
             .Select(e => e.Value).ToList().ForEach(e => /* change the value */);

您可以為此使用XPathSelectElement方法:

var newValue = "New value";

var xDoc = XDocument.Parse(@"<ROOT>
    <A>
        <A1>
            <elementA1></elementA1>
        </A1>
        <A2>
            <elementA2>Some value</elementA2>
        </A2>
    </A>
</ROOT>");

xDoc.XPathSelectElement("/ROOT/A/A2/elementA2").SetValue(newValue);

不要從所有節點中選擇Value,而要獲取節點本身並更改Value屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM