Heim > Fragen und Antworten > Hauptteil
Ich brauche eine Möglichkeit, Text zwischen zwei Tags auszuwählen (dem ersten -Tag und dem nachfolgenden
-Tag):
<div> <span>abc</span> defg <br> hijkl <br> mnop <span>qrs</span> tuvw <br> xyz </div>
Wie wähle ich mithilfe des XPath-Ausdrucks nur „defg“ aus?
Ich habe versucht, mit following-sibling
das erste -Tag nach dem ersten
-Tag zu finden, aber ich finde keine Möglichkeit, den Text dazwischen auszuwählen.
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中也适用。