我正在尝试编写一个 XPATH 来显示项目编号,但我只能弄清楚如何显示文本“项目编号(DPCI)”,而不是实际的项目编号,在示例中为 085-03-7859下面
<div>
<b>Item Number (DPCI)</b>
":"
"085-03-7859"
<hr aria-hidden="true">
</div>
我尝试了
//b[text()='Item Number (DPCI)']
,但它只显示:项目编号(DPCI)
您想要寻址
text()
节点,该节点是 div
的子节点,而 b
的 text()
是“项目编号 (DCPI)”。
您使用的 XPath 寻址
b
元素。因此,您可以修改您的 XPath 以从那里开始,然后查找 text()
同级:
//b[text()='Item Number (DPCI)']/following-sibling::text()
有一些空的
text()
,因此您需要排除它们。您可以使用另一个谓词来测试 normalize-space()
(折叠空白字符并仅删除空白)是否选择任何内容:
//div[b ='Item Number (DPCI)']/text()[normalize-space()]
这会给你:
":"
"085-03-7859"
所以,现在您想从该
text()
中解析电话号码。您可以再次使用 normalize-space()
来“展平”该字符串,然后使用 substring-before()
和 substring-after()
在这些引号之间移动:
substring-before(
substring-after(
normalize-space(//div[b ='Item Number (DPCI)']/text()[normalize-space()]),
'":" "'),
'"')