我一直在尝试在python中将更多.xml文件中的一个大.xml文件拆分几天。事情是我还没有真正成功。所以我在这里寻求你的帮助。
我的大.xml文件如下所示:
<Root>
<Testcase>
<Info1>[]<Info1>
<Info2>[]<Info2>
</Testcase>
<Testcase>
<Info1>[]<Info1>
<Info2>[]<Info2>
<Testcase>
...
...
...
<Testcase>
<Info1>[]<Info1>
<Info2>[]<Info2>
<Testcase>
</Root>
它有超过2000个孩子,我想要做的是解析这个.xml文件并拆分成每个有100个孩子的较小的.xml文件。这将导致20个新的.xml文件。
我该怎么做?
谢谢!
L.E:
我尝试使用xml.etree.ElementTree解析.xml文件
import xml.etree.ElementTree as ET
file = open('Testcase.xml', 'r')
tree = ET.parse(file)
total_testcases = 0
for Testcase in root.findall('Testcase'):
total_testcases+=1
nr_of_files = (total_testcases/100)+1
for i in range(nr_of_files+1):
tree.write('Testcase%d.xml' % (i), encoding="UTF-8")
问题是我不知道如何专门获取测试用例并将它们复制到另一个文件...
答案 0 :(得分:1)
实际上,root.findall('Testcase')将返回“Testcase”子元素的列表。 所以需要做的是:
以下是示例:
>>> tcs = root.findall('Testcase')
>>> tcs
[<Element 'Testcase' at 0x23e14e0>, <Element 'Testcase' at 0x23e1828>]
>>> len(tcs)
2
>>> r = ET.Element('Root')
>>> r.append(tcs[0])
>>> ET.tostring(r, 'utf-8')
'<Root><Testcase>\n <Info1>[]</Info1>\n <Info2>[]</Info2>\n </Testcase>\n </Root>'