我正在尝试创建一个Python实用程序,它可以自动将带有TCG卡名称和规则的xml文件(想想聚集的魔力)转换为一组图像。该过程的一个主要部分是A)提取xml数据和B)输出一个带有“set”标记的新xml文件,该标记包含结果图像的url作为属性(这样您就可以在Cockatrice或类似程序中使用这些卡)。这些都是使用本机python csv库完成的
这是我的代码:我将在底部解释这个问题,因为不阅读它很难理解,我想
import csv
def entriestocards(xmlfile, cards):
f = open(xmlfile)
settag = ET.Element("set")
tree = ET.parse(f)
f.close()
root = tree.getroot()
for c in root:
try:
for element in c.find('set'): #remove set tags from xml for fresh start
c.remove(element)
print('found and removed set tag')
card = Card(c.find('name').text,c.find('text').text)
settag.set('picURL', card.image)
settag.text = set_code
c.insert(1, settag)
print(settag.attrib) #this prints the correct image url in the command line
print('inserted set tag')
cards.append(card)
except AttributeError:
print("card missing attributes")
continue
tree.write(xmlfile[:-4] + "-cardized.xml")
return cards
我在命令行中打印settag.attrib
,然后得到我想要的东西。每一张卡片都有自己的图像url作为settag属性——卡片的name
上加了一个.png
问题是,当我查看实际输出文件时,所有的“set”标记在picURL
属性中都具有相同的图像文件名。在我的例子中,它们都具有xml数据中最后一个条目的图像文件名。将上述代码中的card.image
更改为"foo"
。对settag的set调用会导致所有set标记都获得属性picURL = "foo"
到底发生了什么事?提前谢谢,很抱歉,问题不是很简单
目前没有回答
相关问题 更多 >
编程相关推荐