2010-06-29 35 views
8

我使用ElementTree的生成一些HTML,但我碰到的是ElementTree的不文本存儲爲節點的問題,但作爲Elementtexttail性能。這是一個問題,如果我想生成的東西,需要多個文本節點,例如:Python ElementTree中的多個文本節點? HTML生成

<a>text1 <b>text2</b> text3 <b>text4</b> text5</a> 

據我可以告訴有沒有辦法產生這個 - 我這麼想嗎?或者,有沒有更好的解決方案來實現Python中快速簡單的HTML生成?

回答

11

要使用ElementTree生成上述字符串,可以使用以下代碼。這個技巧是,text是下一個元素之前的第一批文本,而tail是直到下一個元素的元素之後的所有文本。 「

import xml.etree.ElementTree as ET 
root = ET.Element("a") 
root.text = 'text1 ' #First Text in the Element a 
b = ET.SubElement(root, "b") 
b.text = 'text2' #Text in the first b 
b.tail = ' text3 ' #Text immediately after the first b but before the second 
b = ET.SubElement(root, "b") 
b.text = 'text4' 
b.tail = ' text5' 
print ET.tostring(root) 
#This prints <a>text1 <b>text2</b> text3 <b>text4</b> text5</a> 
+0

」尾部是元素到下一個元素之後的所有文本。「啊,那是我沒有意識到的。謝謝! – 2010-07-07 13:10:44