Py学习  »  Python

python:用elementtree解析xml并用名称空间编写

Alesa • 7 年前 • 1891 次点击  

我用 xml python3.5中的库 阅读 和 写作 XML文件。我不修改文件。打开写就行了。但是图书馆修改了文件。

  1. 为什么要修改?
  2. 我怎样才能防止这种情况?例如,我只想替换一个非常复杂的XML文件中的特定标记或它的值,而不丢失任何其他信息。

这是示例文件

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<movie>
    <title>Der Eisbär</title>
    <ids>
        <entry>
            <key>tmdb</key>
            <value xsi:type="xs:int" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">9321</value>
        </entry>
        <entry>
            <key>imdb</key>
            <value xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">tt0167132</value>
        </entry>
    </ids>
</movie>

这是密码

import xml.etree.ElementTree as ET
tree = ET.parse('x.nfo')
tree.write('y.nfo', encoding='utf-8')

XML文件变成

<movie xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <title>Der Eisbär</title>
    <ids>
        <entry>
            <key>tmdb</key>
            <value xsi:type="xs:int">9321</value>
        </entry>
        <entry>
            <key>imdb</key>
            <value xsi:type="xs:string">tt0167132</value>
        </entry>
    </ids>
</movie>
  • 一号线不见了。
  • 这个 <movie> -第2行中的标记现在具有属性。
  • 这个 <value> -第7行和第11行中的标记现在具有较少的属性。
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/43012
文章 [ 1 ]  |  最新文章 7 年前