python ElementTree: как добавить текст SubElement жирным шрифтом - PullRequest
0 голосов
/ 24 января 2020

Как я могу создать SubElement Python ElementTree для записи XML для этого:

Привет Что случилось?

ie. где какой-то текст выделен жирным шрифтом, а другой - нет, но оба они отображаются на одной строке при печати? Я думаю, именно так должен выглядеть XML.

<p>
  <b>Hi</b>
  What's up?
</p>

Я пробовал несколько вещей, в том числе следующее:

import xml.etree.ElementTree as ET

p_element = ET.SubElement(section, "p")
bold = ET.SubElement(p_element, "b")
bold.text = "Hi" 
not_bold = ET.SubElement(bold, "p")
not_bold.text = "What's up?"

Это дает следующее и в итоге получается все они выделены жирным шрифтом:

<p>
  <b>
     Hi
     <p> 
       What's up?
     </p>
  </b>
</p>

И если я вместо этого сделаю это следующим образом:

import xml.etree.ElementTree as ET

p_element = ET.SubElement(section, "p")
bold = ET.SubElement(p_element, "b")
bold.text = "Hi" 
not_bold = ET.SubElement(p_element, "p")
not_bold.text = "What's up?"

Он получит правильные слова, выделенные жирным шрифтом, но "Привет" и "Что случилось?" будет рендерить по разным строкам.

1 Ответ

1 голос
/ 24 января 2020

Вы можете сделать следующее:

import xml.etree.ElementTree as ET


p_element = ET.Element("p")
b_element = ET.SubElement(p_element, 'b')
b_element.text = "Hi"
b_element.tail = "What's up?"
print(ET.dump(p_element)) # <p><b>Hi</b>What's up?</p>

, но не используйте этот модуль, если вам нужно проанализировать ненадежные или неаутентифицированные данные из-за XML уязвимостей .

...