XPath 查询适用于联机工具,但不适用于 .NET
本文关键字:适用于 不适用 NET 工具 查询 联机 XPath | 更新日期: 2023-09-27 17:56:10
我能够使用在线 xpath 工具让下面的 xpath 针对下面的 xml 工作,但我在 .NET 4.5 中得到一个"表达式必须计算为节点集"异常
xpath:
//*[starts-with(name(.), "childnode")[identification/text()='xyz']]
.xml:
<rootnode>
<childnode1234>
<identification>xyz</identification>
</childnode1234>
<childnode3456>
<identification>abc</identification>
</childnode3456>
</rootnode>
预期结果是
<childnode1234>
<identification>xyz</identification>
</childnode1234>
只需更改:
//*[starts-with(name(.), "childnode")[identification/text()='xyz']]
至:
//*[starts-with(name(.), "childnode")][identification/text()='xyz']
我建议避免未经测试且明显有缺陷的"无名称"在线 xpath 工具"。
在线实现太宽松了。Microsoft XPath 是对的:starts-with()
计算结果为布尔值,而不是节点集。尝试
//*[starts-with(name(.), 'childnode') and identification/text()='xyz']