如何编写XPATH获取Item Number (DPCI)对应的实际商品编号值?
获取商品编号(DPCI)的XPath写法
你的问题出在当前XPath仅选中了<b>标签本身,而目标编号是该标签同级的文本节点,而非任何元素标签的内容。结合给出的HTML结构,可用以下几种XPath获取编号值:
方法1:定位父节点下的目标文本节点
//b[text()='Item Number (DPCI)']/../text()[3]
原理:找到目标<b>标签后,向上取父div,再选择其下第3个文本节点(对应示例中的"085-03-7859")。注意:若HTML中空白节点数量有变化,需调整索引。
方法2:筛选非空白、非冒号的后续文本节点
//b[text()='Item Number (DPCI)']/following-sibling::text()[normalize-space() != '' and normalize-space() != ':']
原理:选取<b>标签之后的所有同级文本节点,过滤掉空白和冒号,直接得到编号文本。这种写法更灵活,不受节点索引变化影响。
方法3:通过编号格式匹配(XPath 2.0+支持)
//div[b[text()='Item Number (DPCI)']]/text()[matches(., '\d{3}-\d{2}-\d{4}')]
原理:先找到包含目标<b>标签的div,再筛选其中符合XXX-XX-XXXX格式的文本节点,精准定位编号。
对应HTML结构回顾
<div> <b>Item Number (DPCI)</b> ":" "085-03-7859" <hr aria-hidden="true"> </div>
内容的提问来源于stack exchange,提问作者lwfish
相关产品推荐
相关产品推荐

