我需要一种方法来选择两个标签之间的文本(第一个标签和随后的
标签):
<div> <span>abc</span> defg <br> hijkl <br> mnop <span>qrs</span> tuvw <br> xyz </div>
如何使用xpath表达式仅选择“defg”?
我尝试使用following-sibling
来找到第一个标签后面的第一个
标签,但是我找不到选择它们之间的文本的方法。
P粉5534287802023-09-14 17:41:03
使用这个XML输入,
<div> <span>abc</span> defg <br/> hijkl <br/> mnop <span>qrs</span> tuvw <br/> xyz </div>
XPath表达式/div/span[1]/following-sibling::text()
返回第一个元素后面的5个兄弟文本节点:defg
、hijkl
、mnop
、tuvw
和xyz
,每个节点都以换行符开头和结尾。
XPath 1.0表达式normalize-space(/div/span[1]/following-sibling::text())
将返回defg
,没有前导或尾随空白,作为normalize-space()
的参数,通过返回节点集中的节点的字符串值将其转换为字符串,该节点在文档顺序中是第一个。
在XPath 2.0及更高版本中,选择序列中的第一个项目,例如:
normalize-space((/div/span[1]/following-sibling::text())[1])
,这在XPath 1.0中也适用。