gpt4 book ai didi

c# - xpath 选择具有最后一个子值的元素

转载 作者:数据小太阳 更新时间:2023-10-29 02:08:49 25 4
gpt4 key购买 nike

这是我的xml文件

<profiles>
<profile id='8404'>
<name>john</name>
<name>mark</name>
</profile>
<profile id='8405'>
<name>john</name>
</profile>
</profiles>

我想选择最后一个“名称”子值= 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);
}

关于c# - xpath 选择具有最后一个子值的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13508130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com