C# 如何使用xPath或其他方法获取最后的XML项?

C# 如何使用xPath或其他方法获取最后的XML项?,c#,.net,xpath,xmldocument,C#,.net,Xpath,Xmldocument,在我注意到需要最后一个节点的子元素之前,我已经使用了第一个节点的子元素PovprecnaPlaca 供参考的XML图片: 感谢所有有用的答案 XML如下所示: 2017-07-01T00:00:00 1603,00 1045,12 1593,10 1039,55 2017-08-01T00:00:00 1602,98 1045,45 1613,62 1051,73 从每个位置的最后一个PovprecnaPlaca获取数据节点 var nodes = xdoc.XPathSelectEleme

在我注意到需要最后一个节点的子元素之前,我已经使用了第一个节点的子元素
PovprecnaPlaca

供参考的XML图片:

感谢所有有用的答案

XML如下所示:


2017-07-01T00:00:00
1603,00
1045,12
1593,10
1039,55
2017-08-01T00:00:00
1602,98
1045,45
1613,62
1051,73

从每个
位置的最后一个
PovprecnaPlaca
获取
数据
节点

var nodes = xdoc.XPathSelectElements("//PovprecnaPlaca[last()]/Datum");
获取每个节点内的文本

List<string> results = nodes.Select(d => d.Value).ToList();
List results=nodes.Select(d=>d.Value.ToList();

您的attemp不起作用的两个原因:1)它从文档的根节点“/”开始,在这个级别上没有
PovprecnaPlaca
节点。2) 通过调用
text()
它得到
XText
,这在Linq中引发了一个异常,因为当调用
XPathSelectElements()
从每个
位置的最后一个
PovprecnaPlaca
节点获取
数据
时,它期望节点出现异常

var nodes = xdoc.XPathSelectElements("//PovprecnaPlaca[last()]/Datum");
获取每个节点内的文本

List<string> results = nodes.Select(d => d.Value).ToList();
List results=nodes.Select(d=>d.Value.ToList();

您的attemp不起作用的两个原因:1)它从文档的根节点“/”开始,在这个级别上没有
PovprecnaPlaca
节点。2) 通过调用
text()
它得到了
XText
,这在Linq中引发了一个异常,因为当调用
XPathSelectElements()

时,它预期会出现节点,因此您使用的Xpath不正确。也需要投出结果。您是只想要文件的最后一个日期,还是每个
Place
节点的最后一个日期?请将您的代码添加到问题中,而不是图像。感谢您的反馈,我将添加我的代码。我想要每个位置节点的最后一个,我只是尝试获取最后一个日期。您使用的Xpath不正确。也需要投出结果。您是只想要文件的最后一个日期,还是每个
Place
节点的最后一个日期?请将您的代码添加到问题中,而不是图像。感谢您的反馈,我将添加我的代码。我想要每个place节点的最后一个,我只是尝试获取最后一个日期。在调试时,我用Placa更改了PovprecnaPlaca,所以我一开始就做对了。但我无法让它工作,可能是因为我不知道如何使用“/”和“/”。感谢您的回答:)我在调试时用Placa更改了PovprecnaPlaca,所以我一开始就做对了。但我无法让它工作,可能是因为我不知道如何使用“/”和“/”。谢谢你的回答:)