J'ai besoin d'un moyen de sélectionner du texte entre deux balises (la première balise et la balise
suivante) :
<div> <span>abc</span> defg <br> hijkl <br> mnop <span>qrs</span> tuvw <br> xyz </div>
Comment sélectionner uniquement « defg » à l'aide de l'expression XPath ?
J'ai essayé d'utiliser following-sibling
pour trouver la première balise après la première balise
, mais je ne trouve pas de moyen de sélectionner le texte entre elles.
Utilisez cette entrée XML,
Expression XPath
Un argument d'une/div/span[1]/following-sibling::text()
返回第一个元素后面的5个兄弟文本节点:defg
、hijkl
、mnop
、tuvw
和xyz
, chaque nœud commence et se termine par un caractère de nouvelle ligne.expression XPath 1.0
normalize-space(/div/span[1]/following-sibling::text())
将返回defg
,没有前导或尾随空白,作为normalize-space()
qui est convertie en chaîne en renvoyant la valeur de chaîne du nœud dans l'ensemble de nœuds qui est premier dans ordre des documents.Dans XPath 2.0 et supérieur, sélectionne le premier élément de la séquence, par exemple :
normalize-space((/div/span[1]/following-sibling::text())[1])
, cela fonctionne également dans XPath 1.0.