使用python / elementtree时,在xml文件中获得一些意外的更改

时间:2012-11-26 11:31:32

标签: python xml elementtree

这是原始的xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<TVAMain xml:lang="en-GB" xmlns="urn:tva:metadata:2010" xmlns:tva2="urn:tva:metadata:extended:2010" xmlns:yv="http://refdata.youview.com/schemas/Metadata/2012-10-16" xmlns:mpeg7="urn:tva:mpeg7:2008" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://refdata.youview.com/schemas/Metadata/2012-09-26 ../schemas/youview_metadata_2012-09-26.xsd"> 
<!-- -->
    <ProgramDescription> .............................

我更改了xml的一些内容(但不是我在这里发布的内容,这些代码应该保持不变),然后写入新的xml文件,但新的xml文件内容变成这样:

<?xml version='1.0' encoding='UTF-8'?>
<TVAMain xmlns="urn:tva:metadata:2010" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://refdata.youview.com/schemas/Metadata/2012-09-26 ../schemas/youview_metadata_2012-09-26.xsd" xml:lang="en-GB">

    <ProgramDescription>....................

您可以看到某些内容丢失,订单也发生了变化,我该怎么办才能避免对xml进行任何更改?

1 个答案:

答案 0 :(得分:0)

XML标记上的属性没有固定的顺序,更改它们的顺序不会改变它们的含义。

ElementTree只会为实际使用的命名空间写出命名空间限定符。您的示例非常简短,但我怀疑它根本没有使用yvmpeg7命名空间。