我有一个包含2,500多个<Item>
元素的XML文件。
下面的示例显示了示例布局。我想将<Item name="1st">
和<Item name="500th">
之间的每一行复制到新文件中。然后从<Item name=501st">
开始继续到下一个500,并将其写入新文件。结果是5个新文件。没有什么可以跳过的。
<Item name="1st"><ItemProperties>
<property>data</property><property>data</property>
</ItemProperties>
...
...
<Item name="500th"><ItemProperties>
<property>data</property><property>data</property>
</ItemProperties>
以下操作适用于前500个,但我不知道如何继续前一个结束标记。
xmllint --xpath "//Item[position()<=500]" FileName.XML > Output1.XML
有关示例,请参阅this link:
答案 0 :(得分:0)
import xml.etree.ElementTree as ET
xml_doc = ET.parse('table.xml')
results = xml_doc.getroot()
def chunkify(lst,n):
# Split the list into 'n' equal parts
return [ lst[i::n] for i in xrange(n) ]
count = 1
for f in chunkify(results,5):
temp_str = ''
for element in f:
temp_str = temp_str + ET.tostring(element)
with open(str(count) +"_Output.xml", "w") as text_file:
text_file.write(temp_str)
count = count +1