У меня проблемы с использованием 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>