2009-08-21 54 views

Trả lời

7

http://docs.python.org/library/xml.etree.elementtree.html

etree hỗ trợ truy vấn XPath, giống như lxml.

etree được bao gồm trong thư viện chuẩn, nhưng lxml nhanh hơn.

+1

Hỗ trợ cho XPath được giới hạn trong ElementTree mặc dù, như trích dẫn trong [Python 3 tài liệu] (https://docs.python.org/3 /library/xml.etree.elementtree.html#xpath-support): "Mô-đun này cung cấp hỗ trợ giới hạn cho các biểu thức XPath để định vị các phần tử trong một cây. Mục đích là để hỗ trợ một tập con nhỏ của cú pháp viết tắt, một công cụ XPath đầy đủ là bên ngoài phạm vi của mô-đun. " –

2

Thư viện xử lý XML yêu thích của tôi cho Python là lxml, vì đó là một trình bao bọc xung quanh libxml2, cũng hỗ trợ XPath đầy đủ.

Ngoài ra còn có 4Suite là một giải pháp Python thuần túy hơn.

1

ElementTree được bao gồm. Dưới 2,6 và dưới xpath của nó là khá yếu, nhưng trong 2.7 much improved:

import xml.etree.ElementTree as et 
root = et.parse(filename) 
result = '' 

# How to make decisions based on attributes even in 2.6 
for e in root.findall('.//child/grandchild'): 
    if e.attrib.get('name') == 'foo': 
     result = e.text 
     break 
Các vấn đề liên quan