使用 XPath 以 CSS 類別尋找元素
在網頁抓取中,通常需要根據 CSS 類別來定位 HTML 元素。 XPath 是一個用於導航 XML 和 HTML 文件的強大工具,它提供了一種實現此目的的方法。
考慮一個 HTML 頁面,其中的 div 元素具有名為「Test」的類別。以下 XPath 查詢可用於尋找此元素:
//*[contains(@class, 'Test')]
此查詢選擇包含「Test」類別的所有元素,無論它們出現在文件樹中的位置。
為了最佳化效能,您可以將搜尋範圍縮小到特定元素類型,例如 div。例如,以下查詢將搜尋限制為包含「Test」類別的div:
//div[contains(@class, 'Test')]
但是,如果您有具有「Testvalue」或「newTest」等類別的元素,則上述查詢將匹配他們也是。為了確保更精確的匹配,您可以使用在“Test”類別之前和之後包含空格的串聯字串,如@Tomalak 所建議:
//div[contains(concat(' ', @class, ' '), ' Test ')]
此查詢將僅匹配具有單字的div “ Test”作為單獨的類別值。
要消除任何空白問題,您還可以使用標準化空間函數標準化空格,如建議的那樣@Terry:
//div[contains(concat(' ', normalize-space(@class), ' '), ' Test ')]
最後,將這些查詢中的星號(*)替換為您想要匹配的實際元素名稱非常重要,除非您希望搜尋文件中的所有元素。這樣會提高查詢的效率。
以上是如何使用XPath透過CSS類別高效定位HTML元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!