用Python写XML文件

1 投票
3 回答
2375 浏览
提问于 2025-04-16 18:14

我创建了一个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脚本把每本书分开,写成单独的文件;但是,生成的文件不是XML文件,因为它们没有XML声明。有没有办法在Python中创建XML文件呢?

我的想法是确保每个文件都有下面这样的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>

3 个回答

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 声明了。

0

你为什么不在每个书籍文件的开头写上xml声明,然后再写书籍的内容呢?

撰写回答