-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathxmlparse.py
63 lines (52 loc) · 1.61 KB
/
xmlparse.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
from card import Card, filize
from card import Card
import csv
import re
import sys
try:
import xml.etree.cElementTree as ET
except ImportError:
import xml.etree.ElementTree as ET
XML_PATH = r'' # set to desired drop-in location of XML file
# in Cockatrice this will be the "custom sets" folder
class Set:
def __init__(self, name):
self.name = name
self.cards = []
def entriestocards(xmlfile, cards):
f = open(xmlfile)
tree = ET.parse(f)
f.close()
root = tree.getroot()
for c in root:
try:
for element in c.findall('set'): #remove set tags from previous xml loads
c.remove(element)
print('found and removed set tag')
cardtext = c.find('text').text
card = Card(c.find('name').text,c.find('text').text)
settag = ET.Element("set")
settag.set('picURL', card.image)
settag.text = set_code
c.insert(1, settag)
print(settag.attrib)
print('inserted set tag')
cards.append(card) # add card to cards list
except AttributeError:
print("card missing attributes")
continue
tree.write(xmlfile[:-4] + "-cardized.xml")
return cards
#for m in re.finditer(p, contents):
try:
set = Set(sys.argv[1])
except:
set = Set(input("Enter exact name of xml file, without extension: "))
try:
set_code = sys.argv[2]
except:
set_code = set.name[:3].upper()
cards = []
filename = f"{XML_PATH}{filize(set.name, 'xml')}"
cards = entriestocards(filename, cards)
#addimages(filename, cards)