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.