【发布时间】:2018-02-03 12:09:22
【问题描述】:
我正在通过 npm 使用 xpath,并且正在搜索 XPath 1.0 表达式,这样在“name”和“run”之后的搜索应该会产生以下输出。
使用 "//*[contains(name(), '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>
【问题讨论】:
-
你试过
//*[contains(name(), 'name')]//*[contains(name(), 'run')]吗? -
我不确定我是否已经尝试过他的 - 我会在星期一看看,谢谢。
-
您能说明一下您希望 XPath 做什么吗?
-
@Andersson 我想在树中搜索,结果我想在 HTML 中创建一个树结构,其中找到的值显示为打开/突出显示。因此,我希望能够搜索包含“name”的父节点和包含“run”或“getStatus”的子节点,因此输出应为:'
0 0 'true -
还是一头雾水……要根据子节点获取父节点吗?类似
//*[contains(name(), 'name') and .//*[contains(name(), 'run')]]?
标签: javascript xpath