|
SmtC: Show me the Code
Ole Peter Smith
Instituto de Matemática e Estatística
Universidade Federal de Goiás
http://www.olesmith.com.br
|
|
Uma sociedade sera - sempre - avaliado
Pelo jeito que trata seus mais fracos.
Mahatma
|
Generating XML
??Second.py3 Listing: Second.py3.
#!/usr/bin/python3
#A dict
persons=[
{
"ID": 1,
"Name": "Ole",
"Email": "ole@ufg.br",
"Birthday": "11/01/1964",
"Phone": "62 5555555",
"Fax": "62 5555555",
},
{
"ID": 2,
"Name": "Ole",
"Email": "ole@ufg.br",
"Birthday": "11/01/1964",
"Phone": "62 5555555",
"Fax": "62 5555555",
},
{
"ID": 3,
"Name": "Ole",
"Email": "ole@ufg.br",
"Birthday": "11/01/1964",
"Phone": "62 5555555",
"Fax": "62 5555555",
},
{
"ID": 4,
"Name": "Ole",
"Email": "ole@ufg.br",
"Birthday": "11/01/1964",
"Phone": "62 5555555",
"Fax": "62 5555555",
},
{
"ID": 5,
"Name": "Ole",
"Email": "ole@ufg.br",
"Birthday": "11/01/1964",
"Phone": "62 5555555",
"Fax": "62 5555555",
},
{
"ID": 6,
"Name": "Ole",
"Email": "ole@ufg.br",
"Birthday": "11/01/1964",
"Phone": "62 5555555",
"Fax": "62 5555555",
},
]
lt="<"
gt=">"
def Dict2XML(name,dct,level=1,indent=" "):
lines=[
indent*level+lt+name+gt
]
keys=list(dct.keys())
for j in range(len(keys)):
key=keys[j]
value=str(dct[ key ])
text=indent*(level+1)
startkey=lt+key+gt
endkey=lt+"/"+key+gt
text=text+startkey+value+endkey
lines.append(text)
lines.append(indent*level+lt+"/"+name+gt)
return "\n".join(lines)
def Dicts2XML(name,dcts,level=1,indent=" "):
texts=[
indent*level+lt+name+"s"+gt
]
for i in range(len(dcts)):
#Increment level
text=Dict2XML(name,dcts[i],level+1,indent)
texts.append(text)
texts.append(indent*level+lt+"/"+name+"s"+gt)
return "\n".join(texts)
#Main execution
print(lt+"?xml version=\'1.0\'"+gt)
print(Dicts2XML("pessoa",persons))
|
Output:
<?xml version='1.0'>
<pessoas>
<pessoa>
<Email>ole@ufg.br</Email>
<Fax>62 5555555</Fax>
<Name>Ole</Name>
<Phone>62 5555555</Phone>
<ID>1</ID>
<Birthday>11/01/1964</Birthday>
</pessoa>
<pessoa>
<Email>ole@ufg.br</Email>
<Fax>62 5555555</Fax>
<Name>Ole</Name>
<Phone>62 5555555</Phone>
<ID>2</ID>
<Birthday>11/01/1964</Birthday>
</pessoa>
<pessoa>
<Email>ole@ufg.br</Email>
<Fax>62 5555555</Fax>
<Name>Ole</Name>
<Phone>62 5555555</Phone>
<ID>3</ID>
<Birthday>11/01/1964</Birthday>
</pessoa>
<pessoa>
<Email>ole@ufg.br</Email>
<Fax>62 5555555</Fax>
<Name>Ole</Name>
<Phone>62 5555555</Phone>
<ID>4</ID>
<Birthday>11/01/1964</Birthday>
</pessoa>
<pessoa>
<Email>ole@ufg.br</Email>
<Fax>62 5555555</Fax>
<Name>Ole</Name>
<Phone>62 5555555</Phone>
<ID>5</ID>
<Birthday>11/01/1964</Birthday>
</pessoa>
<pessoa>
<Email>ole@ufg.br</Email>
<Fax>62 5555555</Fax>
<Name>Ole</Name>
<Phone>62 5555555</Phone>
<ID>6</ID>
<Birthday>11/01/1964</Birthday>
</pessoa>
</pessoas>
Output from: /usr/bin/python3 Second.py3
|
|
Messages:
0 secs.
|