Much of XML makes no sense to me. Namespaces are one thing. If I'm parsing a document where namespaces are defined at the top level, then adding namespaces=root.nsmap works when calling the xpath method. I more-or-less get that.
What I don't understand is how I'm supposed to search for a tag when the namespace appears to be defined as an attribute of the tag itself. I have some SOAP XML I'm trying to parse. It looks roughly like this: <s: Envelope xmlns:a="..." xmlns:s="..."> <s:Header> ... </s:Header> <s:Body> <Tag xmlns="http://some/new/path"> ... </Tag> </s:Body> If the document is "doc", I can find the body like so: body = doc.xpath(".//Body" namespaces=doc.nsmap) I don't understand how to find Tag, however. When I iterate over the body's children, printing them out, I see that Tag's name is actually: {http://some/new/path}Tag yet that namespace is unknown to me until I find Tag. It seems I'm stuck in a chicken-and-egg situation. Without knowing that http://some/new/path namespace, is there a way to cleanly find all instances of Tag? Thx, Skip -- https://mail.python.org/mailman/listinfo/python-list