xpath如何获取标签内除去br标签以外的所有内容
时间: 2023-07-16 08:13:44 浏览: 58
可以使用XPath的`normalize-space()`函数和`translate()`函数来获取标签内除去`br`标签以外的所有内容。
具体的XPath表达式为:
```
normalize-space(translate(//标签名/text(), '
	', ''))
```
其中,`//标签名/text()`表示获取标签内所有的文本内容,`translate()`函数用于将文本中的换行符和制表符替换为空格,然后`normalize-space()`函数用于去除文本前后的空格和换行符。
例如,假设要获取id为`content`的div标签内除去`br`标签以外的所有内容,可以使用如下的XPath表达式:
```
normalize-space(translate(//div[@id='content']//text(), '
	', ''))
```
相关问题
bs4的xpath语法如何获取标签内除去br标签以外的所有内容
在BeautifulSoup4中,可以使用`get_text()`方法来获取标签内的所有文本内容。如果要排除某些标签,可以将这些标签名传递给`exclude`参数。例如,要获取除去`br`标签以外的所有文本内容,可以使用以下代码:
```python
from bs4 import BeautifulSoup
html = """
<div>
<p>This is some text.</p>
<br>
<p>More text.</p>
</div>
"""
soup = BeautifulSoup(html, 'html.parser')
text = soup.div.get_text(exclude=['br'])
print(text)
```
输出结果为:
```
This is some text.
More text.
```
在这个例子中,我们首先使用`BeautifulSoup`解析了一个HTML字符串。然后,我们选择了`div`标签,并使用`get_text()`方法来获取除去`br`标签以外的所有文本内容。最后,我们将结果输出到控制台。
bs4中etree的xpath语法如何获取标签内除去br标签以外的所有内容
可以使用`string()`函数获取标签内除去br标签以外的所有内容,示例代码如下:
```python
from bs4 import BeautifulSoup
html = """
<div>
This is some <br>text with<br> line breaks.
<p>And a paragraph.</p>
</div>
"""
soup = BeautifulSoup(html, 'html.parser')
div = soup.find('div')
text = div.xpath('string()').replace('\n', '').strip()
print(text)
```
输出结果为:
```
This is some text with line breaks. And a paragraph.
```
这里先使用`find()`方法获取目标`<div>`标签,然后使用`xpath()`方法结合`string()`函数获取标签内所有文本,并使用`replace()`和`strip()`方法去除换行符和首尾空格。这样就能够获取标签内除去br标签以外的所有内容了。