Czy można używać XPath Query w Pythonie podczas przetwarzania XML. Używam minidomu, który tego nie obsługuje. Czy jest jakiś inny moduł do tego?Kwerenda XPath w języku XML przy użyciu Pythona
6
A
Odpowiedz
7
http://docs.python.org/library/xml.etree.elementtree.html
etree obsługuje zapytań XPath, podobnie jak lxml.
Etree jest zawarty w standardowej bibliotece, ale lxml jest szybszy.
2
1
ElementTree jest wliczony w cenę. Pod 2,6 i poniżej Xpath dość słabe, ale w 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
Wsparcie Xpath jest ograniczony ElementTree jednak, cytowany w [3 Python Dokumenty] (https://docs.python.org/3 /library/xml.etree.elementtree.html#xpath-support): "Ten moduł zapewnia ograniczoną obsługę wyrażeń XPath do lokalizowania elementów w drzewie. Celem jest obsługa małego podzestawu skróconej składni, pełny silnik XPath jest poza zakresem modułu. " –