【发布时间】:2013-07-31 02:42:16
【问题描述】:
我正在将 XDocument 中的代码从一种格式转换为另一种格式。我的代码如下所示:
if (translate.Count > 0)
{
foreach (XElement element in xml.Descendants())
{
if (translate.ContainsKey(element.Value.ToLower()))
element.Value = translate[element.Value.ToLower()];
}
}
问题是,当我检查 XElement 的值时,看起来像这样:
<Element>
<InnerElement>
<Inner2Element>
<TargetValue>F-01751</TargetValue>
</Inner2Element>
</InnerElement>
</Element>
该值等于 F-01751。如果我将其更改为新值,我的 XML 将如下所示:
<Element>NewValue</Element>
有没有一种方法,使用 XElement,一次解析 XDocument 一行而不是递归?或者,有没有办法只检查正在检查的元素的值,而不检查任何子元素的值?我知道我可以将其转换为 XmlDocument,并完成此操作,但这似乎相当极端。有人有其他建议吗?
【问题讨论】:
标签: c# xml linq-to-xml xelement