📜  xpath id 包含文本 - Html (1)

📅  最后修改于: 2023-12-03 15:35:47.745000             🧑  作者: Mango

XPath中的ID包含文本 - HTML

XPath是一种用于在XML文档中查找信息的语言。在HTML中,XPath可以用于查找元素和属性。其中,如果我们想查找的元素的id属性包含特定的文本,我们可以使用XPath中的contains()方法。

contains()方法介绍

contains()方法用于检查一个字符串是否包含另一个字符串。它接受两个参数,第一个参数是要搜索的字符串,第二个参数是要查找的字符串。例如,如果我们要查找包含“hello”文本的元素,我们可以使用以下XPath表达式:

//*[contains(text(),'hello')]

在这个例子中,* 表示查找任何元素,而 contains(text(),'hello') 则表示查找包含“hello”文本的元素。

使用ID属性和contains()方法查找元素

要查找ID属性包含特定文本的元素,我们可以将contains()方法与@id属性结合使用。例如,如果我们要查找ID属性包含“username”的元素,我们可以使用以下XPath表达式:

//*[@id[contains(@id,'username')]]

在这个例子中,* 表示查找任何元素,而 @id[contains(@id,'username')] 则表示查找具有ID属性并且ID属性中包含“username”文本的元素。

代码示例

下面是一个Python程序,它使用XPath查找ID属性包含“username”的元素:

from lxml import html

# 加载HTML文档
doc = html.fromstring("<html><body><div id='username-123'>John Doe</div><div id='password-456'>password</div></body></html>")

# 使用XPath查找ID属性包含“username”的元素
elements = doc.xpath("//*[@id[contains(@id,'username')]]")

# 输出找到的元素数量
print("Found %d elements." % len(elements))

运行上面的代码将输出:

Found 1 elements.

这说明在我们的HTML文档中,有且仅有一个ID属性包含“username”的元素。

总结

XPath的contains()方法可以用于查找ID属性包含特定文本的元素。使用这个方法需要先将@id属性传递给contains()方法,然后在其中查找特定文本。