请告诉我如何从html中删除文本标签,并保留子元素。
<text _ngcontent-c0="" _nghost-c2="">
<p>sample text</p>
</text>
<image>
<figure>
<img alt="" src="xxxxx.jpg"/>
</figure>
</image>
我想将其转换如下
<p>sample text</p>
<image>
<figure>
<img alt="" src="xxxxx.jpg"/>
</figure>
</image>
我尝试了以下方法,但发生了错误'str' object has no attribute 'unwrap'
。
from bs4 import BeautifulSoup
content = '<text _ngcontent-c0="" _nghost-c2="">
<p>sample text</p>
</text>
<image>
<figure>
<img alt="" src="xxxxx.jpg"/>
</figure>
</image>'
while (content.text):
content.text.unwrap()
答案 0 :(得分:0)
你可以得到这样的“解开”元素:
from bs4 import BeautifulSoup
content = '<text _ngcontent-c0="" _nghost-c2=""><p>sample text</p></text><image><figure><img alt="" src="xxxxx.jpg"/></figure></image>'
soup = BeautifulSoup(content)
for p in soup.find_all('p'):
p.parent.unwrap()
print(p.parent) # prints <p>sample text</p><image><figure><img alt="" src="xxxxx.jpg"/></figure></image>
根据您提供的代码,您似乎根本没有使用BeautifulSoup,而是尝试在普通字符串上使用unwrap
方法,因此您提到的错误。
如果您使用的是BeatifulSoup,请提供用于解析HTML的其余代码。