xpath('string(.)')用法
时间: 2024-01-15 19:03:37 浏览: 174
`xpath('string(.)')` 是在XPath语法中的一个常用表达式,它的作用是获取当前节点以及其子节点的文本内容,并将其作为字符串返回。具体来说,`.` 表示当前节点,而 `string()` 用于将节点转换为字符串。
例如,如果我们有一个HTML文档如下:
```html
<html>
<body>
<h1>Hello, World!</h1>
<p>This is a paragraph.</p>
</body>
</html>
```
我们想要获取 `<h1>` 元素的文本内容,可以使用如下的XPath表达式:
```python
from lxml import etree
html = """
<html>
<body>
<h1>Hello, World!</h1>
<p>This is a paragraph.</p>
</body>
</html>
"""
root = etree.HTML(html)
h1_text = root.xpath('//h1/text()')[0]
print(h1_text) # 输出:Hello, World!
```
而如果我们想要获取 `<body>` 元素以及其子元素的文本内容,可以使用如下的XPath表达式:
```python
from lxml import etree
html = """
<html>
<body>
<h1>Hello, World!</h1>
<p>This is a paragraph.</p>
</body>
</html>
"""
root = etree.HTML(html)
body_text = root.xpath('//body/string(.)')[0]
print(body_text) # 输出:Hello, World! This is a paragraph.
```
其中 `string(.)` 表达式表示获取当前节点以及其所有子节点的文本内容,并将其作为一个字符串返回。
阅读全文