Извлечение элементов из буквального текста с использованием Element Tree - PullRequest
0 голосов
/ 19 января 2019

У меня есть следующий XML с тегом <Description>, текст которого содержит специальные символы.

<branch>
   <Description>
      Here are few steps to make these settings
      1)    Tools &lt;&lt; Internet options 2)  Click on General tab
   </Description>
</branch>

Теперь, когда я пытаюсь получить текст описания, я получаю следующий результат, который автоматически конвертирует &lt; в>.Таким образом, код и его результат выглядят следующим образом.

Код -

from xml.etree import ElementTree as ET 
tree = ET.parse(inputFile) # copy the above xml into any file and pass the path to inputFile 

    root = tree.getroot()

    for description in root.iter('Description'):
        print(description.text) 

Мне нужен строковый литерал, как в текстовом теге Description.Как мы его получим?

Ожидается -

Here are few steps to make these settings
          1)    Tools >> Internet options 2)    Click on General tab

1 Ответ

0 голосов
/ 19 января 2019

Вы можете просто использовать html.escape(), чтобы повторно экранировать содержимое:

import html
from xml.etree import ElementTree as ET

tree = ET.parse('test.xml')
root = tree.getroot()

for description in root.iter('Description'):
    print(html.escape(description.text))

Результат:

Here are few steps to make these settings
1)    Tools &lt;&lt; Internet options 2)  Click on General tab
...