diff options
author | Lance Stout <lancestout@gmail.com> | 2010-08-25 14:54:09 -0400 |
---|---|---|
committer | Lance Stout <lancestout@gmail.com> | 2010-08-25 14:54:09 -0400 |
commit | a3580dcef9129975170d8757f835e02caffca82c (patch) | |
tree | 4fa2d96a0f54767011a2204ac9041640782b261d /sleekxmpp/xmlstream/stanzabase.py | |
parent | 1eaa9cb28c426ad35ab8e398ffa77cd9ed7bae30 (diff) | |
download | slixmpp-a3580dcef9129975170d8757f835e02caffca82c.tar.gz slixmpp-a3580dcef9129975170d8757f835e02caffca82c.tar.bz2 slixmpp-a3580dcef9129975170d8757f835e02caffca82c.tar.xz slixmpp-a3580dcef9129975170d8757f835e02caffca82c.zip |
Fixed ElementBase.match to respect namespaces.
Diffstat (limited to 'sleekxmpp/xmlstream/stanzabase.py')
-rw-r--r-- | sleekxmpp/xmlstream/stanzabase.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sleekxmpp/xmlstream/stanzabase.py b/sleekxmpp/xmlstream/stanzabase.py index af74919e..d38eb295 100644 --- a/sleekxmpp/xmlstream/stanzabase.py +++ b/sleekxmpp/xmlstream/stanzabase.py @@ -478,7 +478,8 @@ class ElementBase(object): tag = components[0] attributes = components[1:] - if tag not in (self.name, self.plugins, self.plugin_attrib): + if tag not in (self.name, "{%s}%s" % (self.namespace, self.name), + self.plugins, self.plugin_attrib): # The requested tag is not in this stanza, so no match. return False @@ -499,7 +500,8 @@ class ElementBase(object): # Attempt to continue matching the XPath using the stanza's plugins. if not matched_substanzas and len(xpath) > 1: - next_tag = xpath[1].split('@')[0] + # Convert {namespace}tag@attribs to just tag + next_tag = xpath[1].split('@')[0].split('}')[-1] if next_tag in self.plugins: return self.plugins[next_tag].match(xpath[1:]) else: |