我正在通过npm使用xpath并且我正在搜索XPath 1.0表达式,以便在&name?'之后进行搜索。并且'运行'应该产生以下输出。
找到第一个"父节点"使用" // * [包含(名称(),'名称')]"已经有效,但我不知道是否有可能通过其名称的一部分找到一个孩子(下面的任何级别)?
输入:
<root>
<NameX>
<getLenght>
<unit>m</unit>
</getLenght>
<getStatus>
<status>0</status>
</getStatus>
</NameX>
<Name2>
<getStatus>
<status>0</status>
</getStatus>
<running>
<bit>true</bit>
</running>
</Name2>
</root>
输出:
<running>
<bit>true</bit>
</running>
答案 0 :(得分:0)
Andersson的回答是正确的:
//*[contains(name(), 'name')]//*[contains(name(), 'run')]
高级示例:
如果要搜索至少包含子元素的父节点“名称”,例如'getLen'或 getStat',然后您可以使用此查询:
//*[contains(name(), 'Name')]//*[contains(name(), 'getLen') or
contains(name(), 'getStat')]`
输出:
<NameX>
<getLenght>
<unit>m</unit>
</getLenght>
<getStatus>
<status>0</status>
</getStatus>
</NameX>