@sandrosklyarov

Как получить при парсинге xml склейку всех текстов дочерних элементов (Python)?

Xml:
<response>...<results>...<grouping>...<group>...
    <doc>...
         <title>
             word1
             <hlword>Word2</hlword>
             <hlword>word3</hlword>
             word4
          </title>
          ...
    </doc>
</group>...</grouping>...</results>...</response>...


Код для парсинга:

from lxml import objectify
...
tree = objectify.fromstring(xml)
nodes = tree.response.results.grouping.group
for node in nodes:
    title_element = node.doc.title
    title_text = title_element.text
    print title_text


Всё работает как нужно, только в title_text получается значение "word1", а мне нужно 'word1 Word2 word3 word4', без ненужного тега hlword. Я буду доволен, если получится в title_text получить значение "word1< hlword>Word2 hlword>< hlword>word3 hlword>word4".
Какой самый удобный способ добиться необходимого результата?
  • Вопрос задан
  • 200 просмотров
Решения вопроса 1
@sandrosklyarov Автор вопроса
for node in nodes:
    ...
    print(' '.join(node.doc.title.itertext()))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы