我使用lxml解析某些HTML片段(來自RSS提要),爲了有效地執行此操作,我使用create_parent='div'
。當我稍後輸出HTML時,我不希望將父div包含在內,因爲使用我的html佈局,它最終成爲div中的div,完全不透明。Python lxml,在輸出HTML之前刪除父元素(使用fragment_fromstring)
的代碼是現在:
from lxml.html import fragment_fromstring
html = fragment_fromstring(html_string, create_parent = 'div')
for tag in html.xpath('//*[@class]'):
tag.attrib.pop('class')
for tag in html.xpath('//*[@id]'):
tag.attrib.pop('id')
return lxml.html.tostring(html)
TL; DR:我怎麼去除包裝DIV時輸出?
這可能是答案; 「移除包裝div」通過跨過它並傳遞子節點:'lxml.etree.tostring(html_doc.xpath('*')[0])''。警告:未經測試的代碼。只使用python lxml 15年。對這些代碼進行測試的人應該寫出答案。 – Phlip