打印:
特殊情況(可省略):
壹般來說,同壹個元素只能存在於壹個地方(不像原來的ElementTree API)。
請註意,在原始的ElementTree中,單個元素對象可以位於任意數量的樹中的任意數量的位置,這允許與列表相同的復制操作。明顯的缺點是,對這樣壹個元素的修改將應用於它出現在樹中的所有地方,這可能是有意的,也可能不是有意的。
這種差異的好處是lxml.etree中的元素總是只有壹個父元素,可以通過getparent()方法查詢。原始ElementTree中不支持這壹點。
如果要將元素復制到lxml.etree中的不同位置,可以考慮使用Python標準庫中的復制模塊創建壹個獨立的深度副本:from copy import deepcopy。
元素的Attrib成員完全支持字典接口。
請註意,對attrib成員的更改將應用於原始元素,反之亦然。使用dict(root.attrib)可以得到壹個獨立的字典。
基於數據的XML壹般只在葉節點包含文本,但是在超文本文檔中,文本可能出現在元素之間。
這可以由尾部成員支持(可以跳過):
請註意。文本成員僅包含元素子文本開頭的部分,而。tail成員包含緊跟在元素後面的文本。
使用tostring,您可以提取xml中包含的所有文本:
的。元素的iiter方法將產生壹個文檔樹順序的叠代器(註意它不同於直接叠代元素本身)。
當您為iter方法分配標記時,只有指定的元素會被叠代。
ElementTree類包含完整的文檔信息,比如DOCTYPE和DTD。
ElementTree是壹種使用parse()函數解析文件返回值的類型。
註意序列化時ElementTree和它的根節點之間的區別。
fromstring函數可以將壹個xml字符串解析成壹個xml元素(返回值類型是lxml.etree._Element類比如etree。元素)。
XML函數的行為與fromstring基本相同,同樣返回Element類。
還有壹個html函數,自動添加HTML和body元素(如果原來的字符串不存在)(也返回element類)。
註意:HTML函數的返回值仍將被視為標準XML。
parse函數主要用於解析完整的文檔,而上面提到的字符串解析函數主要用於解析文檔片段。
註意:parse函數返回壹個ElementTree對象,而不是壹個Element對象。
parse函數支持以下參數:
請註意,從文件名或url解析通常比從文件對象解析要快。
還沒有,看原文鏈接。
還沒有,看原文鏈接。
lxml.etree提供了兩種逐步增量解析的方法。壹種是通過類似文件的對象,其中它反復調用read()方法。第二種方式是通過feed解析器接口,由feed(data)和close()方法給出:
還沒有,看原文鏈接。
有時,您所需要的文檔只是樹深處的壹小部分,因此將整個樹解析到內存中、遍歷它並丟棄它會有很大的開銷。lxml.etree通過兩個事件驅動的解析器接口支持這個用例。
還沒有,看原文鏈接。
還沒有,看原文鏈接。
E-factory為生成XML和HTML提供了簡單緊湊的語法。基於屬性訪問的元素創建使得為XML語言構建簡單的詞匯表變得很容易:
還沒有,看原文鏈接。
ElementTree庫附帶了壹個簡單的類似XPath的路徑語言,稱為ElementPath。API在這裏提供了四種方法,您可以在元素和元素樹上找到它們: