У меня есть скрипт python, используемый для анализа XML и экспорта в файл csv определенных интересующих элементов. Я попытался теперь изменить сценарий, чтобы разрешить фильтрацию XML-файла в соответствии с критериями, эквивалентный запрос XPath будет:
\DC\Events\Confirmation[contains(TransactionId,"GTEREVIEW")]
Когда я пытаюсь использовать lxml для этого, мой код выглядит так:
xml_file = lxml.etree.parse(xml_file_path)
namespace = "{" + xml_file.getroot().nsmap[None] + "}"
node_list = xml_file.findall(namespace + "Events/" + namespace + "Confirmation[TransactionId='*GTEREVIEW*']")
Но, похоже, это не работает. Кто-нибудь может помочь? Пример файла XML:
<Events>
<Confirmation>
<TransactionId>GTEREVIEW2012</TransactionId>
</Confirmation>
<Confirmation>
<TransactionId>GTEDEF2012</TransactionId>
</Confirmation>
</Events>
Поэтому мне нужны все узлы «Подтверждение», которые содержат идентификатор транзакции, который включает строку «GTEREVIEW». Спасибо