2015-06-25 76 views
3

我正在學習XML和正嘗試下面的練習代碼:爲什麼etree.tostring()不適用於不同的方法?

root = etree.XML('<html><head/><body><p>Hello<br/>World</p></body></html>') 
etree.tostring(root, method='xml') 
print(etree.tostring(root)) 
etree.tostring(root, method='html') 
print(etree.tostring(root)) 
etree.tostring(root, method='text') 
print(etree.tostring(root)) 

在運動時,它說,如果我這樣做,我應該得到3個不同的格式輸出字符串:XML,HTML和文本。但是,我只得到3個XML格式的輸出。

我在這裏錯過了什麼?我是否應該輸入一些東西?我懷疑是etree.XML賦值部分有什麼不對,但正如我所說:我只是在這裏指示方向。人們認爲什麼是錯誤?

回答

1

tostring()調用的結果確實不同,但每次都會丟失,而您將打印相同的表達式三次。 (注意tostring()返回結果,修改其參數到位

如果改爲運行此腳本:

from lxml import etree 

root = etree.XML('<html><head/><body><p>Hello<br/>World</p></body></html>') 
print(etree.tostring(root, method='xml')) 
print(etree.tostring(root, method='html')) 
print(etree.tostring(root, method='text')) 

你會得到輸出你期望:

<html><head/><body><p>Hello<br/>World</p></body></html> 
<html><head></head><body><p>Hello<br>World</p></body></html> 
HelloWorld 
+0

嗯,現在我得到一個錯誤指向「從lxml導入etree」錯誤,說「沒有模塊命名爲lxml」。這似乎工作,如果我離開那條線雖然。謝謝你的幫助。 –

相關問題