@beduin01

Как получить XML из xpath Element?

Мне нужно получить XML из xpath Element.

afile.xml:

<?xml version = "1.0" encoding = "UTF-8"?>
<applications >
  <application >
      <journalNumber > 1 < /journalNumber >
   </application >
   <application >
      <journalNumber > 2</journalNumber>
   </application >
</applications >


Код:
etxml = etree.parse(afile)
    root = etxml.getroot()

    value = root.xpath("//*[local-name() = '{0}']".format("application"))


Показывает тип:
<Element {http://zakupki.gov.ru/oos/types/1}application at 0x16568142d48>


А мне нужно XML из этого получить
  • Вопрос задан
  • 93 просмотра
Пригласить эксперта
Ответы на вопрос 1
ScriptKiddo
@ScriptKiddo
Docs

Элемент в строку
etree.tostring(value)

Текст элемента
value.text

spoiler

test.xml

<?xml version = "1.0" encoding = "UTF-8"?>
<applications>
    <application>
        <journalNumber>1</journalNumber>
    </application>
    <application>
        <journalNumber>2</journalNumber>
    </application>
</applications>


Python 3

from lxml import etree

etxml = etree.parse('test.xml')

root = etxml.getroot()
values = root.xpath("//*[local-name() = 'journalNumber']")


for value in values:
    print('XML: ', etree.tostring(value, encoding='unicode'))
    print('Text: ', value.text)


Output

XML:  <journalNumber>1</journalNumber>
    
Text:  1
XML:  <journalNumber>2</journalNumber>
    
Text:  2


Ответ написан
Комментировать
Ваш ответ на вопрос

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

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