Как добавить XML-заголовок к объекту DOM - PullRequest
3 голосов
/ 21 октября 2010

Я использую Python xml.dom.minidom, но я думаю, что этот вопрос подходит для любого парсера DOM.

В моем исходном файле в начале есть строка, подобная этой:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>

Это не похоже на dom, поэтому, когда я делаю что-то вроде dom.toxml (), результирующая строка не имеет строки в начале.

Как я могу добавить это?

пример выхода:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Root xmlns:aid="http://xxxxxxxxxxxxxxxxxx">
<Section>BANDSAW BLADES</Section>
</Root>

надеюсь, что будет ясно.

1 Ответ

2 голосов
/ 21 октября 2010

Это, кажется, не является частью dom

XML-декларация не получает своего собственного узла, нет, но свойства, объявленные в ней, видны наDocument объект:

>>> doc= minidom.parseString('<?xml version="1.0" encoding="utf-8" standalone="yes"?><a/>')
>>> doc.encoding
'utf-8'
>>> doc.standalone
True

Сериализация документа должна включать часть объявления standalone="yes", а toxml() - нет.Возможно, вы могли бы считать это ошибкой, но на самом деле метод toxml() не дает никаких обещаний сериализовать декларацию XML соответствующим образом.(например, вы не получите encoding, если только вы не попросите об этом)* действительно нужна здесь декларация XML?Вы используете версию и кодировку по умолчанию, и, поскольку у вас нет DOCTYPE, не может быть никаких внешне определенных объектов, поэтому документ уже является автономным по своей природе.Согласно стандарту XML : «если нет внешних объявлений разметки, объявление отдельного документа не имеет смысла».Мне кажется, вы могли бы полностью опустить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...