c# - 在不知道名称的情况下从节点解析多个元素

标签 c# xml linq xml-parsing

这当然是一个非常简单的问题,但我已经搜索了 2 页的 Google 结果,仍然没有找到答案。

基本上,我有一个这样的 XML:

<section name="section1">
     <set name="set1">value1</set>
     <set name="set2">value2</set>
     <set name="set3">value3</set>
<section>

这个结构有多个部分。

我想做的是在不知道这些“集合”确切名称的情况下将其解析为字典。所以,在解析之后应该是这样的:

section1[set1]  <--- should contain "value1"

对于 set2 等也是如此。

如何使用 LINQ to XML 实现此目的?

最佳答案

var xdoc = XDocument.Load(path_to_xml);
var section1 = xdoc.Descendants("set") // or xdoc.Root.Elements()
                   .ToDictionary(s => (string)s.Attribute("name"),
                                 s => (string)s);

var set2 = section1["set2"]; // "value2"

关于c# - 在不知道名称的情况下从节点解析多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20311055/

相关文章:

c# - 检查 HtmlString 在 C# 中是否为空格

xml - 在 XSLT 中保留属性新行

linq - Linq `Where` 子句查询结果是否可以根据查询是延迟执行还是非延迟执行而有所不同?

c# - 在 C# 中使用 LINQ 查询 XML 文件

c# - 序列不包含任何元素?

c# - 在运行时未发生在对象上添加属性

c# - Foreach 循环遍历作为文本框的控件不返回

c# - Linq 集团月度季度

sql-server - TSQL 转换 XML 中的字符

xml - .//在 XPath 中是什么意思?