Я очень новичок в этой области, поэтому я уверен, что это просто нечто очевидное. Я пытаюсь изменить скрипт python, чтобы он находил узел другим способом, но я получаю ошибку «неверный предикат».
import xml.etree.ElementTree as ET
tree = ET.parse("/tmp/failing.xml")
doc = tree.getroot()
thingy = doc.find(".//File/Diag[@id='53']")
print(thingy.attrib)
thingy = doc.find(".//File/Diag[BaseName = 'HTTPHeaders']")
print(thingy.attrib)
Это должно найти один и тот же узел дважды, но вторая находка получает ошибку. Вот выдержка из XML:
<Diag id="53">
<Formatted>xyz</Formatted>
<BaseName>HTTPHeaders</BaseName>
<Column>17</Column>
Надеюсь, я не слишком много урезал. По сути, поиск с помощью «@id» работает, но вместо этого я хочу выполнить поиск по этому тегу BaseName.
На самом деле я хочу выполнить поиск по комбинации тегов, чтобы у меня сложилось более сложное выражение, но я не могу заставить работать простое!