C# 如何更新XDocument中元素的所有实例?
我有如下xml结构。如何替换此结构中无处不在的元素值?有没有一种方法可以使用Linq实现这一点?此外,有时结构可能不同,但总会有资源元素,所以我需要查看资源的所有实例,而不关心它在哪里 谢谢你的建议C# 如何更新XDocument中元素的所有实例?,c#,linq,linq-to-xml,C#,Linq,Linq To Xml,我有如下xml结构。如何替换此结构中无处不在的元素值?有没有一种方法可以使用Linq实现这一点?此外,有时结构可能不同,但总会有资源元素,所以我需要查看资源的所有实例,而不关心它在哪里 谢谢你的建议 <Users> <User> <Number>123456</Number> <ID>1</ID> <Events> <Event&g
<Users>
<User>
<Number>123456</Number>
<ID>1</ID>
<Events>
<Event>
<ID>12</ID>
</Event>
</Events>
<Items>
<Item>
<ID>12</ID>
<Resource>Replace this value</Resource>
</Item>
<Item>
<ID>13</ID>
<Resource>Replace this value</Resource>
</Item>
<Item>
<ID>14</ID>
<Resource>Replace this value</Resource>
</Item>
</Items>
</User>
//More User elements where Resource needs to be updated
<User>
</User>
<User>
</User>
</Users>
123456
1.
12
12
替换此值
13
替换此值
14
替换此值
//需要更新资源的更多用户元素
Linq是一种查询语言,因此您不能直接使用它来修改值,但您可以使用它轻松地选择文档中的所有资源
元素并迭代/更改它们
例如:
// or load from xml, however you have it
var xDoc = XDocument.Load(@"c:\temp\myxml.xml");
// iterate every Resource element
foreach (XElement element in xDoc.Descendants("Resource"))
element.Value = "Hello, world";
这将挑选出XML中的每个
资源
元素,而不管它在层次结构中的什么位置,在您的情况下,这就是您所需要的。如果需要更具体地针对它,可以使用XPath表达式或进一步的Linq调用,例如Element()
,它们在层次结构的单个级别上工作。如何更新它们?对于每个用户?它们都是相同的值吗?取决于另一个值?