首页 > 解决方案 > 需要使用python将xml标签值拆分为一个文件中的10个标签项和另一个文件中的另外10个标签项

问题描述

我有一个简单的 xml 文件,需要在一个文件中拆分前 10 个标签值,在另一个文本中拆分另外 10 个标签值,以便将所有值拆分为单独的文本文件中的每 10 个值。

import xml.etree.ElementTree as ET

tree = ET.parse('Invoice.xml')
root = tree.getroot()

for e in root.iter('LineItem'):
    print (e.text)

这是我当前的输出,一个文件中的前 10 个值和另一个文件中的 11 到 20。就像明智的 21 到 30 等等。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

标签: pythonxmlsplitelementtree

解决方案


您可以将所有项目添加到列表中,然后以十个为一组进行处理,或者您可以跟踪元素编号并在每十个元素上更改输出文件。

配料

l = [e for e in root.iter('LineItem')]
num_batches = math.ceil(len(l)/10)
for batch in range(num_batches):
    # Setup output file
    for e in l[batch*10 : min((batch+1)*10, len(l) - 1)]:  # Iterate over each element in batch
        print(e.text)

元素计数

i = 0
for e in root.iter('LineItem'): 
    if i % 10 == 0:
        # Change output file
    i+=1
    print(e.text)

推荐阅读