搜尋

首頁  >  問答  >  主體

XPath定位兩個標籤之間的文字

我需要一種方法來選擇兩個標籤之間的文字(第一個標籤和隨後的
標籤):

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

如何使用xpath表達式僅選擇“defg”?

我嘗試使用following-sibling來找到第一個標籤後面的第一個
標籤,但是我找不到選擇它們之間的文字的方法。

P粉462328904P粉462328904469 天前508

全部回覆(1)我來回復

  • 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。

    回覆
    0
  • 取消回覆