将一个大的 .xml 文件拆分为多个 .xml 文件 (python)
Split one large .xml file in more .xml files (python)
几天来,我一直在尝试将一个大的 .xml 文件拆分为 python 中的更多 .xml 文件。问题是我还没有真正成功。所以在这里我请求你的帮助。
我的大 .xml 文件如下所示:
<Root>
<Testcase>
<Info1>[]<Info1>
<Info2>[]<Info2>
</Testcase>
<Testcase>
<Info1>[]<Info1>
<Info2>[]<Info2>
<Testcase>
...
...
...
<Testcase>
<Info1>[]<Info1>
<Info2>[]<Info2>
<Testcase>
</Root>
它有超过 2000 个 children,我想做的是解析这个 .xml 文件并拆分成包含 100 个 children 的更小的 .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")
问题是我不知道如何专门获取测试用例并将它们复制到另一个文件...
实际上,root.findall('Testcase') 将 return 一个包含 "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>'
几天来,我一直在尝试将一个大的 .xml 文件拆分为 python 中的更多 .xml 文件。问题是我还没有真正成功。所以在这里我请求你的帮助。
我的大 .xml 文件如下所示:
<Root>
<Testcase>
<Info1>[]<Info1>
<Info2>[]<Info2>
</Testcase>
<Testcase>
<Info1>[]<Info1>
<Info2>[]<Info2>
<Testcase>
...
...
...
<Testcase>
<Info1>[]<Info1>
<Info2>[]<Info2>
<Testcase>
</Root>
它有超过 2000 个 children,我想做的是解析这个 .xml 文件并拆分成包含 100 个 children 的更小的 .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")
问题是我不知道如何专门获取测试用例并将它们复制到另一个文件...
实际上,root.findall('Testcase') 将 return 一个包含 "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>'