C# 解析节点中的多个元素而不知道它们的名称

C# 解析节点中的多个元素而不知道它们的名称,c#,xml,linq,xml-parsing,C#,Xml,Linq,Xml Parsing,这当然是一个非常简单的问题,但我已经搜索了2页谷歌搜索结果,仍然没有找到答案 所以基本上,我有这样一个XML: <section name="section1"> <set name="set1">value1</set> <set name="set2">value2</set> <set name="set3">value3</set> <section> 价值1

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

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

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

价值1
价值2
价值3
此结构有多个部分

我想做的是将其解析到字典中,而不知道这些“集合”的确切名称。因此,在解析之后,应该如下所示:

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

section1[set1]这里介绍如何找到具有特定节的元素

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);

好的,谢谢,它可以工作,但是如果我有多个部分(因此在不同的部分中有多个集合元素),所有集合都会放在字典中。如何仅从特定节中选择集合元素?@szczurcio使用以下代码从特定节中获取
set
元素
xdoc.substands(“节”)。其中(s=>(string)s.Attribute(“name”)==“section1”).elements()。您还可以使用xpath:
xdoc.XPathSelectElements(“//section[@name='section1']]/set”)
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);