-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathXmlTest.py
More file actions
66 lines (60 loc) · 2.28 KB
/
XmlTest.py
File metadata and controls
66 lines (60 loc) · 2.28 KB
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
64
65
66
from xml.etree.ElementTree import ElementTree
from xml.etree.ElementTree import Element
from xml.etree.ElementTree import SubElement
from xml.etree.ElementTree import dump
from xml.etree.ElementTree import Comment
from xml.etree.ElementTree import tostring
'''
Potato Smasher
Smash Potatoes like never before.
'''
## Writing the content to xml document
book = ElementTree()
purchaseorder = Element('PurchaseOrder')
book._setroot(purchaseorder)
SubElement(purchaseorder, 'account', {'refnum' : "2390094"})
item = Element("item", {'sku' : '33-993933', 'qty' : '4'})
purchaseorder.append(item)
print(item.items()) # [('sku', '33-993933'), ('qty', '4')]
print(item.attrib) # {'sku': '33-993933', 'qty': '4'}
print(item.get('sku')) # 33-993933
##SubElement(item, 'name').text = "Potato Smasher"
##SubElement(item, 'description').text = "Smash Potatoes like never before."
SubElement(purchaseorder, 'name').text = "Potato Smasher"
SubElement(purchaseorder, 'description').text = "Smash Potatoes like never before."
##book.write('book.xml',"utf-8")
##print tostring(purchaseorder)
##import sys
##book.write(sys.stdout)
##dump(book)
## Displaying the content of the xml document
print(purchaseorder.find('account'))
print(purchaseorder.find('account').get('refnum'))
print(purchaseorder.findall('account')[0].get('refnum'))
print(purchaseorder.find('item/name'))
##print(purchaseorder.find('item/name').text)
## How to use ElementTree([element,] [file])
## 1. From standard XML element, it becomes root element
##print(ElementTree(item).getroot().find('name').text)
print(ElementTree(purchaseorder).getroot().find('name').text)
## 2. From XML file
##print(ElementTree(file='book.xml').getroot().find('item/description').text)
## Create an iterator
for element in purchaseorder.getiterator():
print(element.tag)
## Get pretty look
def indent(elem, level=0):
i = "\n" + level*" "
if len(elem):
if not elem.text or not elem.text.strip():
elem.text = i + " "
for e in elem:
indent(e, level+1)
if not e.tail or not e.tail.strip():
e.tail = i
if level and (not elem.tail or not elem.tail.strip()):
elem.tail = i
return elem
if __name__=="__main__":
dump(indent(purchaseorder))
book.write('book1.xml',"utf-8")