将XML子树写入文件

时间:2014-10-15 14:53:59

标签: python xml xml.etree

所以我有一个巨大的XML文件,但只希望其中一部分在另一个文件中。因此我想提取它然后我可以做一些工作而不影响原始文件。

这是基本想法

<a>
      <otherethings> </otherthings>
      <b>
          <things> </thing>
      </b>
      <otherethings2></otherthings2>
</a>

简单地说,我想将b提取到另一个文件并进行编辑

如何在python

中完成

我目前正在尝试使用xml.etree.ElementTree

但似乎无法做到正确。

按要求我的错误

1

    tree = ET.parse('Data.xml')
    root = tree.getroot()
    rootelement = root.iter('b')
    tree._setroot(rootelement)
    root = tree.getroot()
    tree.write('Data2.xml')

2

tree = ET.parse('Data.xml', 'b')
root = tree.getroot()
tree.write('Data2.xml')

说实话,我只是在猜测

不要误会我的意思,我确实在网上找了但找不到任何东西。

1 个答案:

答案 0 :(得分:2)

这应该有效。

from xml.etree import ElementTree as ET

tree = ET.parse('Data.xml')
for el in tree.iter('b'):
    towrite = ET.ElementTree(el)
    towrite.write('Data2.xml')