ElementTree XPath - Получение всех тегов - PullRequest
0 голосов
/ 08 июня 2018

У меня проблемы с использованием XPath Selector в ElementTree.Есть ли способ динамически изменить способ извлечения данных, используя пример ниже.

Допустим, я анализирую файл и хочу извлечь весь текст внутри цели.Есть ли способ использовать один вызов для использования одного «дочернего» .find (.// target / *) вызова, который при циклическом просмотре получит текст в / target / p / em, / target /, / target / *, / target / ** В моей реальной задаче у меня есть тонна различных данных, и я хочу иметь возможность добавить их в словарь, чтобы ссылаться на них позже, т.е.

page_values = {
 'first': child.find('.//first-name').text or "",
 'last': child.find('.//last-name').text or "",
 'biography': child.find('.//biography').text or ""
}

, и у меня возникают проблемы, когда биографияк нему применены тонны форматирования, поэтому я должен назвать его как

'biography': child.find('.//biography/p/em').text or ""

, и в следующий раз в цикле мне нужно будет назвать его как

'biography': child.find(.//biography/).text or ""

Пример кода:

XML

<root>
 <target>
  <p>
   <em>text</em>
  </p>
 </target>
</root>

против

<root>
 <target>
  text
 </target>
</root>
...