【发布时间】:2018-02-27 20:23:51
【问题描述】:
当您不知道 XML 结构是什么时(使用 c#),有什么方法可以遍历 XDocument? 当你知道结构时,有很多例子,比如这个问题的答案:C# - Select XML Descendants with Linq和C# Foreach XML Node
我已经尝试过 Descendants("A") ,其中 A 是下面的示例 - 在我的 foreach 中,它返回一个元素,其名称为根,值为“所有值连接到一个字符串中”
我这样做的原因是为了匿名化我知道名称的某些节点。 我正在加载的 XDocument 可以是任何形状 - 所以我决定创建一个用户可以添加的列表,其中包含这些敏感元素。
我想避免的一个解决方案是用户为敏感字段创建 XPath。
XML 也很敏感,所以我不能在网上直接分享,但可以看到一个示例(共 5 个)。
<A>
<B>
<C>
<D>
<dee>value1</dee>
<doo>value2</doo>
<date>value3</date>
<time>value4</time>
</D>
</C>
</B>
<E>
...ommited..this doc is 5000 lines long with 500~ unique node names
</E>
............
</A>
那么有没有办法在不使用 Descendants 的情况下进行迭代?
【问题讨论】:
-
你可以在不提供元素名称的情况下调用
Descendants(),它会遍历xml中的每一个元素。 -
不清楚你做什么想要什么。当然,您可以使用 Elements 进行迭代(递归)。
标签: c# xml linq-to-xml xelement