【发布时间】:2013-06-09 16:08:03
【问题描述】:
我正在尝试创建一个 XML 文件,使其具有以下骨架,最好使用 Python 2.7 中的 xml.etree 模块:
<?xml version="1.0"?>
<foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" thing1="this" thing2="that">
....
<somedata bar="1">
<moredata whatsit="42"></moredata>
</somedata>
....
</foo>
让我烦恼的是“foo ....”行。我尝试使用 nsmap 引入 xsi 和 xsd,但导致“无法序列化”错误。
我可以构造或以其他方式修改该行的文本,使其完全符合我的要求,但我想学习使用 xml.etree 以编程方式完成此操作(拉入外部库不是在这种情况下更可取)。
我认为这是一种常见的模式,但我只是在 Python 和 etree 的任何地方都找不到它。
【问题讨论】:
-
我曾经尝试做类似的事情,不幸的是,
xml.etree似乎太弱了。 -
是否所有“xmlns:xsi”和“xmlns:xsd”业务都是多余的,因为“thing1”和“thing2”无论如何都没有附加任何命名空间?我只是担心我会在一个案例中过于简单化,而错过学习正确操作的机会(其他案例可能有更严格的要求)。
标签: python xml python-2.7 elementtree