Python - ElementTree - не может использовать абсолютный путь для элемента
Я получаю эту ошибку в ElementTree, когда пытаюсь запустить код ниже:
SyntaxError: cannot use absolute path on element
Мой XML-документ выглядит следующим образом:
<Scripts>
<Script>
<StepList>
<Step>
<StepText>
</StepText>
<StepText>
</StepText>
</Step>
</StepList>
</Script>
</Scripts>
код:
import xml.etree.ElementTree as ET
def search():
root = ET.parse(INPUT_FILE_PATH)
for target in root.findall("//Script"):
print target.attrib['name']
print target.findall("//StepText")
Я на Python 2.6 на Mac. Я неправильно использую синтаксис Xpath?
В принципе, я хочу показать каждый атрибут имени Script, если он содержит элемент StepText с определенным текстом.
Ответы
Ответ 1
Оказывается, мне нужно было сказать target.findall(".//StepText")
. Я думаю, что-нибудь без "." считается абсолютным путем?
Обновлен рабочий код:
def search():
root = ET.parse(INPUT_FILE_PATH)
for target in root.findall("//Script"):
stepTexts = target.findall(".//StepText")
for stepText in stepTexts:
if FIND.lower() in stepText.text.lower():
print target.attrib['name'],' -- ',stepText.text