Вы также можете сделать это с xml.dom.minidom; и методы toxml () и toprettyxml () сохраняют комментарии. (Я не могу легко использовать lxml, потому что я пишу надстройку, которая должна быть кроссплатформенной, что проще всего сделать с использованием чистого Python.)

я есть следующий фрагмент кода:

    from xml.etree.ElementTree import fromstring,tostring
    mathml = fromstring(input)
    for elem in mathml.getiterator():
        elem.tag = 'm:' + elem.tag
    return tostring(mathml)

Когда я ввожу следующееinput:

<math>
  <a> 1 2 3 </a>  <b />
<foo>Uitleg</foo>
<!-- <bar> -->
</math>

Это приводит к:

<m:math>
  <m:a> 1 2 3 </m:a>  <m:b />
<m:foo>Uitleg</m:foo>

</m:math>

Как придешь? И как я могу сохранить комментарий?

редактировать: Меня не волнует точная используемая библиотека xml, однако я должен иметь возможность вносить изменения в теги. К сожалению, lxml, похоже, не позволяет этого (и я не могу использовать правильные операции пространства имен)

Ответы на вопрос(1)

Ваш ответ на вопрос