2014-01-31 99 views
1

我想使用lxml解析html模板並向html元素添加某些屬性。我可以這麼成功,但通過使用lxml解析html部分模板

template = etree.parse(view, etree.HTMLParser(remove_comments=True)) 

讀取文檔然後保存文檔。我注意到我的模板包含額外的標記,使其成爲一個有效的html模板。結束語像

<div> 
    <span> A template </span> 
</div> 

模板與HTML和body標籤,把它變成像

<html> 
<body> 
<div> 
    <span> A template </span> 
</div> 
</body> 
<html> 

我怎麼看我的「破」 HTML模板和防止LXML從增加這些額外的標籤?

回答

1

根本不使用HTML解析器

與HTML解析器:

>>> template = etree.fromstring('<div><span> A template </span></div>', etree.HTMLParser(remove_comments=True)) 
>>> etree.tostring(template) 
'<html><body><div><span> A template </span></div></body></html>' 

沒有它:

>>> template = etree.fromstring('<div><span> A template </span></div>') 
>>> etree.tostring(template) 
'<div><span> A template </span></div>' 
+0

並沒有意識到這將是簡單的:)。非常感謝 – Apples