python-爬蟲基礎-lxml.etree(3)-Elementtree類

'''
Elementtree 主要是一個包裝在具有根節點的樹周圍的文檔。 
它提供了一些用於序列化和一般文檔處理的方法。
'''
root = etree.XML('''\
<?xml version="1.0"?>
<!DOCTYPE root SYSTEM "test" [ <!ENTITY tasty "parsnips"> ]>
<root>
<a>&tasty;</a>
</root>
 ''')
tree = etree.ElementTree(root)
print(tree.docinfo.xml_version)
print(tree.docinfo.doctype)
tree.docinfo.public_id = '-//W3C//DTD XHTML 1.0 Transitional//EN'
tree.docinfo.system_url = 'file://local.dtd'
print(tree.docinfo.doctype)
'''
當您調用 parse ()函數來解析文件或類似文件的對象(請參閱下面的解析部分)時,也會得到 ElementTree。
其中一個重要的區別是 ElementTree 類序列化爲一個完整的文檔,而不是單個 Element。 
這包括頂級處理指令和註釋,以及文檔中的 DOCTYPE 和其他 DTD 內容:
'''
print(etree.tostring(tree))
'''
在最初的 xml.etree 中。 在1.3.3版本的 lxml 中,ElementTree 實現的輸出看起來和只序列化根 Element 時一樣:
'''
print(etree.tostring(tree.getroot()))
'''
這種序列化行爲在 lxml 1.3.4中發生了變化。 之前,該樹在沒有 DTD 內容的情況下被序列化,這使 lxml 在一個輸入-輸出循環中丟失 DTD 信息。
'''

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章