Maison  >  Questions et réponses  >  le corps du texte

XPath localise le texte entre deux balises

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.

P粉462328904P粉462328904401 Il y a quelques jours430

répondre à tous(1)je répondrai

  • P粉553428780

    P粉5534287802023-09-14 17:41:03

    Utilisez cette entrée XML,

    <div>
    <span>abc</span>
    defg
    <br/>
    hijkl
    <br/>
    mnop
    <span>qrs</span>
    tuvw
    <br/>
    xyz
    </div>
    

    Expression XPath/div/span[1]/following-sibling::text()返回第一个元素后面的5个兄弟文本节点:defghijklmnoptuvwxyz, chaque nœud commence et se termine par un caractère de nouvelle ligne.

    Un argument d'une

    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.

    répondre
    0
  • Annulerrépondre