Подтвердить что ты не робот

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 с определенным текстом.

4b9b3361

Ответ 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