Reading XML namespaces

Adam Tauno Williams awilliam at whitemice.org
Sat May 15 17:04:06 EDT 2010


On Sat, 2010-05-15 at 22:58 +0200, Stefan Behnel wrote:
> Adam Tauno Williams, 15.05.2010 22:40:
> > On Sat, 2010-05-15 at 22:29 +0200, Stefan Behnel wrote:
> >> Adam Tauno Williams, 15.05.2010 20:37:
> >>> Say I have an XML document that begins with:
> >>> <?xml version="1.0" encoding="utf-8"?>
> >>> <dsml:dsml xmlns:dsml="http://www.dsml.org/DSML">
> >>> How can one access the namespaces define in this node?  I've done a fair
> >>> amount of XML in Python, but haven't been able to uncover the call to
> >>> enumerate the namespaces.
> >>> Primarily I am using etree from lxml.
> >> What do you need the namespaces for?
> > One needs to know the defined namespace in order to perform xpath
> > operations.
> Well, yes, but unless you already know the namespace (URI), you can't know 
> what the tag you find signifies in the first place.
> Unless, obviously, you are confusing namespaces with namespace prefixes. 
> But you don't need to know the prefixes for XPath.
> Does this help?
> http://codespeak.net/lxml/xpathxslt.html#namespaces-and-prefixes

I know that.  I'm getting an XML document and an xpath and need to
execute it.  But i have to tell xpath via namespaces= the prefixes &
namespaces; so I need to get that data out of the document.   

"If your XPath expression uses namespace prefixes, you must define them
in a prefix mapping"
-- 
Adam Tauno Williams <awilliam at whitemice.org> LPIC-1, Novell CLA
<http://www.whitemiceconsulting.com>
OpenGroupware, Cyrus IMAPd, Postfix, OpenLDAP, Samba




More information about the Python-list mailing list