我試圖在元素的文本節點內使用 HTML 資料,但它被編碼為好像它不是 HTML 資料一樣。
這是一個 MWE:
from xml.etree import ElementTree as ET
data = '<a href="https://example.com">Example data gained from elsewhere.</a>'
p = ET.Element('p')
p.text = data
p = ET.tostring(p, encoding='utf-8', method='html').decode('utf8')
print(p)
輸出是...
<p><a href="https://example.com">Example data gained from elsewhere.</a></p>
我的意圖是...
<p><a href="https://example.com">Example data gained from elsewhere.</a></p>
uj5u.com熱心網友回復:
您可以將 HTML 字串決議為 ElementTree 物件并將其附加到 DOM:
from xml.etree import ElementTree as ET
data = '<a href="https://example.com">Example data gained from elsewhere.</a>'
p = ET.Element('p')
p.append(ET.fromstring(data))
p = ET.tostring(p, encoding='utf-8', method='html').decode('utf8')
print(p)
uj5u.com熱心網友回復:
你在做什么是錯誤的。您正在分配p.text = data,它基本上認為節點是文本內容。很明顯,文本被轉義了。您必須將其添加為孩子。如下所示:
from xml.etree import ElementTree as ET
data = '<a href="https://example.com">Example data gained from elsewhere.</a>'
d = ET.fromstring(data)
p = ET.Element('p')
p.append(d)
p = ET.tostring(p, encoding='utf-8', method='html').decode('utf8')
print(p)
給予輸出
<p><a href="https://example.com">Example data gained from elsewhere.</a></p>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/437607.html
上一篇:Laravel觀察者和子/孫關系
