【发布时间】:2018-11-03 03:23:22
【问题描述】:
我正在编写 ElementTree python 代码:
- 修改 xml 中的 itemID 并写入磁盘。
- 转到itemIDList中的下一个itemID修改xml中的itemID并写入磁盘
问题是 XML 被一遍又一遍地覆盖,我想要的是将数据附加到新 xml 文件的末尾。
到目前为止,这是我的代码。
base_path = os.path.dirname(os.path.realpath(__file__))
xml_file = os.path.join(base_path, 'data.xml')
tree = ET.parse(xml_file)
root = tree.getroot()
with open('a.txt', 'r') as f:
d = f.readlines()
itemIDlist = []
for i in range(len(d)-1):
hold = d[i].split('\n')
itemIDlist.append(str(hold[0]))
for e in root.iter():
if 'itemID' in e.keys():
e.set('itemID', itemIDlist[i])
new_data = ET.tostringlist(root)
new_xml = open('newXml.xml', 'w')
new_xml.write(new_data)
文本文件有一个这样的数字列表;我们称之为a.txt
19283
29354
34958
59854
原始 XML 文件如下所示
<requests>
<inventory name="WaterMelon" itemID="6834833" action="inStock">
<user username="Carlos">
<role name="GeneralManager"/>
</user>
</inventory>
<inventory name="StrawBerry" itemID="9283343" action="inStock">
<user username="Carlos">
<role name="GeneralManager"/>
</user>
</inventory>
<inventory name="WaterMelon" itemID="" action="inStock">
<user username="Carlos">
<role name="GeneralManager"/>
</user>
</inventory>-->
</requests>
目前我得到四个不同的文件,但是,我只想得到一个包含所有结果的 XML 文件。它应该是这样的
<requests>
<inventory action="inStock" itemID="19283" name="WaterMelon">
<user username="Carlos">
<role name="GeneralManager" />
</user>
</inventory>
<inventory action="inStock" itemID="19283" name="StrawBerry">
<user username="Carlos">
<role name="GeneralManager" />
</user>
</inventory>
<inventory action="inStock" itemID="19283" name="WaterMelon">
<user username="Carlos">
<role name="GeneralManager" />
</user>
</inventory>-->
<inventory action="inStock" itemID="29354" name="WaterMelon">
<user username="Carlos">
<role name="GeneralManager" />
</user>
</inventory>
<inventory action="inStock" itemID="29354" name="StrawBerry">
<user username="Carlos">
<role name="GeneralManager" />
</user>
</inventory>
<inventory action="inStock" itemID="29354" name="WaterMelon">
<user username="Carlos">
<role name="GeneralManager" />
</user>
</inventory>-->
<inventory action="inStock" itemID="34958" name="WaterMelon">
<user username="Carlos">
<role name="GeneralManager" />
</user>
</inventory>
<inventory action="inStock" itemID="34958" name="StrawBerry">
<user username="Carlos">
<role name="GeneralManager" />
</user>
</inventory>
<inventory action="inStock" itemID="34958" name="WaterMelon">
<user username="Carlos">
<role name="GeneralManager" />
</user>
</inventory>-->
</requests>
请帮忙
【问题讨论】:
标签: xml python-2.7 elementtree