这当然是一个非常简单的问题,但我已经搜索了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实现这一目标?
答案 0 :(得分:4)
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"
答案 1 :(得分:2)
这里如何找到具有特定部分的元素
TextReader txtReader = new StringReader(xml);
XDocument xDoc = XDocument.Load(txtReader);
var section1 = xDoc.Descendants("section").Where(elt=>elt.Attribute("name").ToString()=="section1").Descendants("set")
.ToDictionary(s => (string)s.Attribute("name"),
s => (string)s);