84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
我需要一种方法来选择两个标签之间的文本(第一个标签和随后的标签):
<div> <span>abc</span> defg <br> hijkl <br> mnop <span>qrs</span> tuvw <br> xyz </div>
如何使用xpath表达式仅选择“defg”?
我尝试使用following-sibling来找到第一个标签后面的第一个标签,但是我找不到选择它们之间的文本的方法。
following-sibling
使用这个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,每个节点都以换行符开头和结尾。
/div/span[1]/following-sibling::text()
defg
hijkl
mnop
tuvw
xyz
XPath 1.0表达式normalize-space(/div/span[1]/following-sibling::text())将返回defg,没有前导或尾随空白,作为normalize-space()的参数,通过返回节点集中的节点的字符串值将其转换为字符串,该节点在文档顺序中是第一个。
normalize-space(/div/span[1]/following-sibling::text())
normalize-space()
在XPath 2.0及更高版本中,选择序列中的第一个项目,例如: normalize-space((/div/span[1]/following-sibling::text())[1]),这在XPath 1.0中也适用。
normalize-space((/div/span[1]/following-sibling::text())[1])
使用这个XML输入,
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中也适用。