1
我使用bs4來操縱一些富文本。但它在我做角色轉換的地方刪除了br標籤。下面是代碼的簡單形式。Python bs4刪除br標籤
import re
from bs4 import BeautifulSoup
#source_code = self.textInput.toHtml()
source_code = """.......<p style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu';">ABC ABC<br />ABC</span></p>......."""
soup = BeautifulSoup(source_code, "lxml")
for elm in soup.find_all('span', style=re.compile(r"font-family:'Ubuntu'")):
#actually there was a for loop
elm.string = elm.text.replace("A", "X")
elm.string = elm.text.replace("B", "Y")
elm.string = elm.text.replace("C", "Z")
print(soup.prettify())
這應該給一個輸出
...<span style=" font-family:'Ubuntu';">XYZ XYZ<br />XYZ</span>...
#XYZ XYZ
#XYZ
但它給輸出,而不BR標籤。
...<span style=" font-family:'Ubuntu';">XYZ XYZXYZ</span>...
#XYZ XYZXYZ
我該如何糾正?
非常感謝你alecxe!但一個簡單的問題是,我如何將這部分包含在循環中? 它提供了一個錯誤 文件「/ usr(」。「)。 /lib/python3/dist-packages/bs4/element.py「,第211行,在replace_with my_index = self.parent.index(self) AttributeError:'NoneType'對象沒有屬性'index' 再次感謝你! – PVGM
很棒@alecxe !!非常感謝您的建議...... – PVGM