Heim  >  Fragen und Antworten  >  Hauptteil

XPath lokalisiert Text zwischen zwei Tags

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粉462328904P粉462328904401 Tage vor433

Antworte allen(1)Ich werde antworten

  • P粉553428780

    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个兄弟文本节点:defghijklmnoptuvwxyz,每个节点都以换行符开头和结尾。

    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中也适用。

    Antwort
    0
  • StornierenAntwort