lxml是Python語言中使用XML跟HTML功能最豐富且容易使用的函式庫。
簡介
lxml是libxml2跟libxslt函式庫的Python繫結,它獨特的地方是結合了這些簡單的Python原生API的函式庫具有的速度跟完整的功能,大部分都相容且優於著名的ElementTree API,見lxml簡介有更多的背景跟目標資訊,一些常見的問題在FAQ有回答。
對於商業的諮詢和定制化,請聯繫Stefan Behnel。
這一頁描述lxml目前穩定的版本,也請看開發版本的網頁。
文件
完整的lxml文件可以下載PDF文件,這個web上的HTML文件是一般的原始碼下載 的一部分。
- ElementTree:
- ElementTree API
- 跟lxml.etree的相容性和差異
- 基準測試結果
- lxml.etree:
- lxml.etree教學
- lxml.etree特有API 文件
- 生成的API文件 作為參考手冊
- 解析跟驗證 XML
- XPath跟XSLT 支援
- Python XPath跟XSLT的擴充函式
- 訂製的XML API的訂製元素類別(見 EuroPython 2008 talk)
- SAX相容的API 用來跟其他的XML工具溝通
- C-level API用來跟外部的C/Pyrex模組溝通
- lxml.objectify:
- lxml.objectify API文件
- objectify跟etree簡單的比較
lxml.etree 儘可能地遵循ElementTree API在原生的libxml2上建構,假如你是ElementTree新手,就開始進入lxml.etree教學, 也見ElementTree 相容性概述跟比較lxml跟原始的ElementTree及cElementTree實作的基準測試結果。
在lxml.etree教學跟ElementTree 文件之後,最重要去看的地方就是lxml.etree特有的API 文件,它描述lxml如何擴充ElementTree API以揭露libxml2跟libxslt的特有功能,像是XPath、 Relax NG、 XML Schema、 XSLT跟c14n, Python程式碼可以透過擴充函式的使用從XPath表示式跟XSLT樣式表來呼叫,lxml也提供SAX相容的API,這樣可以在標準函式庫中使用SAX支援。
有一個單獨的模組lxml.objectify實作了lxml.etree上的資料繫結API,見objectify和etree的常見問題比較。
除了ElementTree API之外,lxml還具有一個複雜的自定義元素類別的API,這是一個在lxml之上寫任意XML驅動API的簡易方法,在1.1版的時候,lxml.etree有一個新的C-level API 可以在外部C模組裡用來有效率地擴充lxml.etree,包括自定義的元素類別支援。
下載
下載lxml最好的方式就是拜訪Python套件索引的lxml(PyPI),它也有不同平台上編譯的原始碼,這個原始碼分佈是使用此公鑰來簽入,MS Windows的執行檔通常會在PyPI的原始碼版本釋出後幾天供下載,假如你不能等待,先考慮試試沒有那麼新的版本。
最新的版本是lxml 2.3.2,2011-11-11釋出 (2.3.2的更新紀錄),較舊版本的列在下面。
請看一下安裝說明!
這個完整的網站(包括生成的API文件)是這個原始碼分佈的一部分,所以假如你想要下載這個文件作為離線使用,請取用原始碼壓縮檔並且拷貝原始碼檔案中的doc/html的目錄。
你也可以直接從svn目錄來檢查lxml的最新開發版本,使用像這樣的命令(假設你使用hg並且安裝了hg-git):
hg clone https://github.com/lxml/lxml.git lxml
※可參閱讀版本控制使用git
你也可以透過web來瀏覽原始碼檔案庫跟歷史紀錄,請先閱讀how to build lxml from source,開發版本的最新更新紀錄也可以存取, 如果你已經發現有錯誤已經更新或是你想要在最新的主幹版本裡你可以檢查那裡。