1

我可以使用在线 xpath 工具让下面的 xpath 与下面的 xml 一起工作,但我得到一个“表达式必须评估为节点集”。.NET 4.5 中的异常

路径:

//*[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>
4

2 回答 2

4

只是改变:

//*[starts-with(name(.), "childnode")[identification/text()='xyz']]

//*[starts-with(name(.), "childnode")][identification/text()='xyz']

我建议避免未经测试且明显有问题的 "no name" "online xpath tools"

于 2013-01-26T03:58:58.910 回答
3

网上的实现太宽松了。Microsoft XPath 是正确的:starts-with()计算结果为布尔值,而不是节点集。尝试

//*[starts-with(name(.), 'childnode') and identification/text()='xyz']
于 2013-01-26T03:09:10.513 回答