From aa3200096fac3051a00ec63dcd0e276ae8ff4c27 Mon Sep 17 00:00:00 2001 From: Joseph Walton Date: Sun, 17 Mar 2013 18:51:21 +1100 Subject: [PATCH] Check the namespace of XHTML divs. --- src/feedvalidator/content.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/feedvalidator/content.py b/src/feedvalidator/content.py index b3a0468f..6c7066cd 100644 --- a/src/feedvalidator/content.py +++ b/src/feedvalidator/content.py @@ -98,13 +98,16 @@ def characters(self, string): self.log(MissingXhtmlDiv({"parent":self.parent.name, "element":self.name})) validatorBase.characters(self,string) + def isXhtmlDiv(ns, elem): + return ns == 'http://www.w3.org/1999/xhtml' and elem == 'div' + def startElementNS(self, name, qname, attrs): if (self.type<>'xhtml') and not ( self.type.endswith('+xml') or self.type.endswith('/xml')): self.log(UndefinedElement({"parent":self.name, "element":name})) if self.type=="xhtml": - if name<>'div' and not self.value.strip(): + if not isXhtmlDiv(qname, name) and not self.value.strip(): self.log(MissingXhtmlDiv({"parent":self.parent.name, "element":self.name})) elif qname not in ["http://www.w3.org/1999/xhtml"]: self.log(NotHtml({"parent":self.parent.name, "element":self.name, "message":"unexpected namespace", "value": qname})) @@ -119,7 +122,7 @@ def startElementNS(self, name, qname, attrs): if self.attrs.getValue((None,"mode")) == 'escaped': self.log(NotEscaped({"parent":self.parent.name, "element":self.name})) - if name=="div" and qname=="http://www.w3.org/1999/xhtml": + if isXhtmlDiv(qname, name): handler=diveater() else: handler=eater()