Написание XML-файлов с помощью Python

1

Я создал XML-документ со следующим содержимым.

<books>
  <book id="1">
    <title>Title01</title>
    <authors/>
    <pages>
      <page>Page01</page>
      <page>Page02</page>
      <page>Page03</page>
      <page>Page04</page>
      <page>Page05</page>
    </pages>
  </book>
  <book id="2">
    <title>Title02</title>
    <authors/>
    <pages>
      <page>Page01</page>
      <page>Page02</page>
      <page>Page03</page>
      <page>Page04</page>
      <page>Page05</page>
    </pages>
  </book>
</books>

Затем я использую Python script для разделения и записи отдельных книг в отдельные файлы, однако полученные файлы не являются XML файлами, потому что у них нет объявления XML. Есть ли способ создания XML файлов в Python?

Идея состоит в том, чтобы гарантировать, что каждый файл имеет объявление XML, как показано ниже.

 <?xml version="1.0" encoding="ISO-8859-1" ?>
  <book id="1">
    <title>Title01</title>
    <authors/>
    <pages>
      <page>Page01</page>
      <page>Page02</page>
      <page>Page03</page>
      <page>Page04</page>
      <page>Page05</page>
    </pages>
  </book>
  • 0
    Дубликат лучшего XML-инструмента для написания Python
  • 0
    Декларация XML не требуется для правильной формы XML (см. W3.org/TR/2008/REC-xml-20081126/#NT-prolog ). У вас есть еще одна причина для этого?
Показать ещё 1 комментарий
Теги:

3 ответа

0
Лучший ответ

Почему вы не пишете объявление xml в каждый файл книги перед записью записи в книгу?

  • 0
    Я полагаю, что это будет делать сейчас. Большое спасибо.
  • 0
    здорово! что? 0 за ответ понравился?
0

Вы должны изучить модуль xml.etree.ElementTree. Ссылка на Python 3, но она была включена до этого. Я использую его в Python 2.5, поэтому вы должны быть в порядке.

Кроме того, у меня были хорошие результаты с xml.dom.minidom. После того, как вы построили Document (добавив элементы с помощью createElement('ELEM_NAME'), вы просто записываете его в поток с mydoc.toprettyxml().

0

Кодируйте свои файлы в UTF-8 вместо некоторой устаревшей кодировки типа ISO-8859-1. Тогда вам не требуется объявление XML.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню