我能够使用在线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>
答案 0 :(得分:4)
只需更改:
//*[starts-with(name(.), "childnode")[identification/text()='xyz']]
以强>:
//*[starts-with(name(.), "childnode")][identification/text()='xyz']
我建议避免未经测试,明显错误的“无名”“在线xpath工具”。
答案 1 :(得分:3)
在线实施太放松了。 Microsoft XPath是正确的:starts-with()
计算为布尔值,而不是节点集。尝试
//*[starts-with(name(.), 'childnode') and identification/text()='xyz']