2009-08-21 21 views
6

XMLを処理する際にPythonでXPath Queryを使用することは可能ですか?私はそれをサポートしていないminidomを使用しています。それのための他のモジュールはありますか?Pythonを使用したXMLのXPathクエリ

答えて

7

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

etreeはちょうどlxmlのと同じように、XPathクエリをサポートしています。

etreeは標準ライブラリに含まれていますが、lxmlは高速です。

+1

[Pythonの3つのドキュメント](https://docs.python.org/3に引用したのXPathのサポートは、けれどもElementTreeのに限定されています/library/xml.etree.elementtree.html#xpath-support): "このモジュールは、ツリー内の要素を特定するためのXPath式のサポートを制限しています。その目的は、短縮構文の小さなサブセットをサポートすることです。モジュールの範囲外です。 –

2

Python用の私のお気に入りのXML処理ライブラリはlxmlです。これはlibxml2のラッパーであるため完全なXPathもサポートしています。

4Suiteもあり、純粋なPythonソリューションです。

1

ElementTreeが含まれます。 2.6の下では、そのXPathの下にかなり弱いですが、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 
関連する問題