C# C中XPathSelectElements的分组结果#

C# C中XPathSelectElements的分组结果#,c#,xml,xpath,C#,Xml,Xpath,我有一个如下结构的xml <root> <Node> <value>a</value> <value>b</value> <value>c</value> </Node> <Node> <value>d</value> <value&g

我有一个如下结构的xml

<root>     
    <Node>
        <value>a</value>
        <value>b</value>
        <value>c</value>
    </Node>
    <Node>
        <value>d</value>
        <value>e</value>
        <value>f</value>

    </Node>
    <Node>
        <value>x</value>
        <value>y</value>
    </Node>  
</root>

A.
B
C
D
E
F
x
Y
我想使用XPath/root/Node/value来选择按节分组到列表中的value节点。结果是3个列表[a,b,c],[d,e,f],[x,y]

如何使用C#实现这一点


提前感谢。

您可以使用
LINQ to XML
轻松实现您的目标。在大多数情况下,最好将您的收藏设置为
IEnumerable
,而不是
List

var doc = XDocument.Parse(xml);
var nodes = doc.Descendants("Node")
            .Select(n => n.Elements().Select(e => e.Value));
使用Linq转换Xml

var xDoc = XDocument.Load(filename);

var lists = xDoc.Descendants("Node")
            .Select(n => n.Elements("value").Select(v => v.Value).ToList())
            .ToList();

var lists = xDoc.XPathSelectElements("//Node/value")
            .GroupBy(x => x.Parent)
            .Select(x => x.Select(y => y.Value).ToList())
            .ToList();

你试过什么吗?如果您只需搜索,就可以看到数百个在C#中读取XML的示例。显示您当前的代码,这样我们就可以告诉您哪里出错了。