使用 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中文网其他相关文章!