这是原始的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进行任何更改?
答案 0 :(得分:0)
XML标记上的属性没有固定的顺序,更改它们的顺序不会改变它们的含义。
ElementTree只会为实际使用的命名空间写出命名空间限定符。您的示例非常简短,但我怀疑它根本没有使用yv
和mpeg7
命名空间。