【发布时间】:2014-01-16 11:31:13
【问题描述】:
我对 Python 很陌生,只阅读了Learn Python the Hard Way。但我认为这仍然超出了我的范围。我的技能是 XML/XSL,而不是 Python。我需要一点帮助才能开始。
概述:我需要将缺失的 XML 数据 (addition.xml) 添加到现有的 XML 文件 (original.xml) 中。
XML 文件(包含缺失的数据):(addition.xml)
<profile>
<dog-list>
<dog>
<name>sally</dog>
<age>1</age>
</dog>
<dog>
<name>susie</dog>
<age>12</age>
</dog>
</dog-list>
<people-list>
<person>
<name>ue</name>
<age>25</age>
<gender>female</gender>
</person>
</people-list>
</profile>
上面的 XML 数据添加到这个 XML 文件中:(original.xml)
<profile>
<cat-list>
<cat>
<name>foo></name>
</cat>
<cat>
<name>bar</name>
<age>3</age>
</cat>
</cat-list>
<bird-list>
<bird>
<name>cricket</name>
<age>2</age>
</bird>
</bird-list>
<people-list>
<person>
<name>tyler</name>
<age>26</age>
</person>
</people-list>
<car-list>
<car>
<make>mitsubishi</make>
<model>evo x</model>
<year>2013</year>
</car>
</car-list>
</profile>
我的预期输出应该是:--> 新的(original.xml)
<profile>
<cat-list>
<cat>
<name>foo></name>
</cat>
<cat>
<name>bar</name>
<age>3</age>
</cat>
</cat-list>
<dog-list>
<dog>
<name>sally</dog>
<age>1</age>
</dog>
<dog>
<name>susie</dog>
<age>12</age>
</dog>
</dog-list>
<bird-list>
<bird>
<name>cricket</name>
<age>2</age>
</bird>
</bird-list>
<people-list>
<person>
<name>tyler</name>
<age>26</age>
</person>
<person>
<name>ue</name>
<age>25</age>
<gender>female</gender>
</person>
</people-list>
<car-list>
<car>
<make>mitsubishi</make>
<model>evo x</model>
<year>2013</year>
</car>
</car-list>
</profile>
这里发生的情况是原始.xml 文件中缺少addition.xml 中的数据。我该如何将addition.xml中的数据添加到original.xml中,而不是创建一个新文件,覆盖它。
我在 google 和 stackoverflow 上到处查看。我知道我可以使用ElementTree,但我最模糊的想法是如何创建这个结果。
非常感谢任何帮助!
【问题讨论】:
-
您的 xml 数据无效:请注意不匹配的开始和结束标签。
-
已修复。抱歉,我输入了,错过了结束标签
</bird-list> -
元素的顺序是否相关?
<dog-list>必须在<cat-list>之后吗? -
是的,我终于找到了与here 非常接近的东西。但它不是闯入一条新线,而是将这条线并排聚集在一起。
-
并且它不会覆盖文件或创建新文件。它只是在终端打印它。
标签: python xml elementtree