gpt4 book ai didi

c# - 以字符串结尾的属性值的 XPath?

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

我在选择属性以特定值结尾的元素时遇到问题。

XML 看起来像

<root>
<object name="1_2"><attribute name="show" value="example"></object>
<object name="1_1"><attribute name="show" value="example"></object>
<object name="2_1"><attribute name="show" value="example"></object>
</root>

所以我需要从以 _1 结尾的对象的属性中提取所有值,我该怎么做?

这段代码是我写的

 XmlNodeList childnodes = xRoot.SelectNodes("//Object[@Name='1_1']");
foreach (XmlNode n in childnodes)
Console.WriteLine(n.SelectSingleNode("Attribute[@Name='show']").OuterXml);

但我找不到如何搜索属性名称部分以及如何获取目标参数的确切值。

最佳答案

首先注意XML和XPath是区分大小写的,所以Object不同于objectName不同于name

XPath 2.0

这个 XPath 2.0 表达式,

//object[ends-with(@name,'_1')]

将选择所有 object 元素,其 name 属性值以 _1 结尾。

XPath 1.0

XPath 1.0 缺少 ends-with() 函数,但可以通过更多的工作实现相同的结果:

ends-with($s, $e) ≡ (substring($s, string-length($s) - string-length($e) +1) = $e)

适用于 $s@name$e'_1' 的情况,上面简化为这个表达式:

//object[substring(@name, string-length(@name) - 1) = '_1']

关于c# - 以字符串结尾的属性值的 XPath?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48853181/

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