1 回答

TA貢獻1808條經驗 獲得超4個贊
您的輸入文檔格式不正確,缺少 a,并且一個文檔未正確關閉。固定輸入文檔后,工作路徑表達式為></pdiv
XPath 表達式
//div[@class='content']//text()[not(ancestor::div/@class[contains(., 'code')])][normalize-space()]
它選擇所有文本節點,但前提是它們沒有具有值包含“代碼”的屬性的祖先元素,并且所選的文本節點不能僅包含空格。divclass
輸出
單個結果由以下部分分隔:------
title
-----------------------
text
-----------------------
text2
-----------------------
text3
-----------------------
text4
-----------------------
text5
-----------------------
text6
-----------------------
text7
-----------------------
text8
更新
我試過了你的答案。它的工作原理,但我仍然需要來自img標簽的來源。我怎樣才能得到它?
也可以選擇元素的屬性,但這會使 Xpath 表達式更加復雜。您只需添加另一行 PHP 來計算單獨的路徑表達式,例如:sourceimg
//div[@class='entry-content']/p/img/@source
更新 2
雖然我絕對不建議使用此表達式(因為它會混淆您的代碼),但下面介紹如何使用聯合運算符將兩個表達式組合成一個表達式:
//div[@class='entry-content']//text()[not(ancestor::div/@class[contains(., 'code')])][normalize-space()] | //div[@class='entry-content']//p/img/@src
- 1 回答
- 0 關注
- 94 瀏覽
添加回答
舉報