summaryrefslogtreecommitdiff
path: root/sleekxmpp/xmlstream/matcher
diff options
context:
space:
mode:
Diffstat (limited to 'sleekxmpp/xmlstream/matcher')
-rw-r--r--sleekxmpp/xmlstream/matcher/id.py2
-rw-r--r--sleekxmpp/xmlstream/matcher/stanzapath.py7
-rw-r--r--sleekxmpp/xmlstream/matcher/xmlmask.py1
-rw-r--r--sleekxmpp/xmlstream/matcher/xpath.py1
4 files changed, 10 insertions, 1 deletions
diff --git a/sleekxmpp/xmlstream/matcher/id.py b/sleekxmpp/xmlstream/matcher/id.py
index ec7597d4..44fad15c 100644
--- a/sleekxmpp/xmlstream/matcher/id.py
+++ b/sleekxmpp/xmlstream/matcher/id.py
@@ -3,4 +3,4 @@ from . import base
class MatcherId(base.MatcherBase):
def match(self, xml):
- return xml.get('id') == self._criteria
+ return xml['id'] == self._criteria
diff --git a/sleekxmpp/xmlstream/matcher/stanzapath.py b/sleekxmpp/xmlstream/matcher/stanzapath.py
new file mode 100644
index 00000000..d036d0b8
--- /dev/null
+++ b/sleekxmpp/xmlstream/matcher/stanzapath.py
@@ -0,0 +1,7 @@
+from . import base
+from xml.etree import cElementTree
+
+class StanzaPath(base.MatcherBase):
+
+ def match(self, stanza):
+ return stanza.match(self._criteria)
diff --git a/sleekxmpp/xmlstream/matcher/xmlmask.py b/sleekxmpp/xmlstream/matcher/xmlmask.py
index e8e4df02..1cd19644 100644
--- a/sleekxmpp/xmlstream/matcher/xmlmask.py
+++ b/sleekxmpp/xmlstream/matcher/xmlmask.py
@@ -16,6 +16,7 @@ class MatchXMLMask(base.MatcherBase):
self.default_ns = ns
def match(self, xml):
+ xml = xml.xml
return self.maskcmp(xml, self._criteria, True)
def maskcmp(self, source, maskobj, use_ns=False, default_ns='__no_ns__'):
diff --git a/sleekxmpp/xmlstream/matcher/xpath.py b/sleekxmpp/xmlstream/matcher/xpath.py
index 060d5df3..5e0411ef 100644
--- a/sleekxmpp/xmlstream/matcher/xpath.py
+++ b/sleekxmpp/xmlstream/matcher/xpath.py
@@ -6,6 +6,7 @@ ignore_ns = False
class MatchXPath(base.MatcherBase):
def match(self, xml):
+ xml = xml.xml
x = cElementTree.Element('x')
x.append(xml)
if not ignore_ns: