这是我的 xml 文件
<profiles>
<profile id='8404'>
<name>john</name>
<name>mark</name>
</profile>
<profile id='8405'>
<name>john</name>
</profile>
</profiles>
我想选择最后一个“name”子值 = john 的配置文件,结果应仅包含 id=8405 的配置文件
可以评估这个的 xpath 是什么?
这是我的审判:
var filterdFile = profilefileXML.XPathSelectElements("/profiles/profile[name[last()]='john']");
但这没有意义。
更新:
我的线索是正确的,其中只有一个语法错误。谢谢大家
您可以连续应用多个索引操作[...]
:
var doc = XDocument.Parse(xml); //the xml from your question
var node = doc.XPathSelectElement("/profiles/profile[name='john'][last()]");
Console.WriteLine(node.Attribute("id").Value); //outputs 8405
这将返回最后一个profile
包含该元素的元素name
值为john
.
另一方面,如果您想返回所有元素最后一个name
元素的值为john
,你的 XPath 应该已经可以工作了:
var nodes = doc.XPathSelectElements("/profiles/profile[name[last()]='john']");
foreach (var node in nodes)
{
Console.WriteLine(node.Attribute("id").Value);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)