V predchádzajúcom príspevku “Jednoduchá prechádzka po XML v Pythone”, som ukázal, ako je možné parsovať XML pomocou Pythonu.
Čo ale v prípade, že potrebujeme použiť namespace?
Namespace sa expanduje do tvaru {namespace}element. Čo sa odrazí napríklad v príkaze find. Výsledný kód bude vyzerať nasledovne:
from xml.etree import ElementTree
xmlTest="""
<s:xml xmlns:s="library://ns.adobe.com/flex">
<s:person>
<s:id>573280</s:id>
<s:type>Supplier</s:type>
</s:person>
<s:person>
<s:id>66172</s:id>
<s:type>Customer</s:type>
</s:person>
</s:xml>
"""
tree = ElementTree.fromstring(xmlTest)
namespace="library://ns.adobe.com/flex"
for person in tree:
type = person.find('{%s}type' % namespace)
id = person.find('{library://ns.adobe.com/flex}id')
if type.text == 'Supplier':
print "Supplier:",id.text
Všimnime si jednoduchý trik s %s na riadku s type = person.find.



