Python を使用して非常に単純な XML を解析しようとしています。
Python 3 より前は、XPath 機能を備えた「webscraping」ライブラリを使用していました。非常に簡単に動作します:
xpath.search(xml (xml string), "XPath Query (//search)"
- 提供された XPath クエリに基づいて、見つかった要素を返します。
今、私は Python 3 に切り替えることにしましたが、上記のライブラリは (2to3.py の後でも) Python 3 で適切に動作しないため、ネイティブxml.etree.ElementTree
ライブラリを使用することにしました。
何かわからないかもしれませんが、これは悪夢です。XML および XPath クエリを関数に単純に提供し、結果を返すという方法では機能しません。代わりに、10行以上のコードを使用する必要があり、要素の子などをいじる必要がありますが、それでも機能しません...
import xml.etree.ElementTree as ET
doc = ET.fromstring(xml)
result = doc.findall("//XPath Query")
にSyntaxError: cannot use absolute path on element
追加.
し//XPath Query
てもあまり役に立ちません。
ElementTree
ライブラリが非常に複雑で、要素をいじったり、毎回ループlxml
を使用したりする代わりに、単純に XPATH を使用できない理由は何ですか?for
XPathクエリを使用して結果を返すだけのPython 3用のシンプルなライブラリをお勧めできますか?