[英]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.