[Pywikipedia-l] SVN: [6610] trunk/pywikipedia/wikipedia.py

cosoleto at svn.wikimedia.org cosoleto at svn.wikimedia.org
Thu Apr 16 10:26:26 UTC 2009


Revision: 6610
Author:   cosoleto
Date:     2009-04-16 10:26:26 +0000 (Thu, 16 Apr 2009)

Log Message:
-----------
Removed a 'scrubxml' function incorrectly added to Site class from r6567. Changed mediawiki_message, instead.

Modified Paths:
--------------
    trunk/pywikipedia/wikipedia.py

Modified: trunk/pywikipedia/wikipedia.py
===================================================================
--- trunk/pywikipedia/wikipedia.py	2009-04-16 08:30:47 UTC (rev 6609)
+++ trunk/pywikipedia/wikipedia.py	2009-04-16 10:26:26 UTC (rev 6610)
@@ -4901,16 +4901,6 @@
                 # Token not found
                 output(u'WARNING: Token not found on %s. You will not be able to edit any page.' % self)
 
-    def scrubxml(self, xml):
-        """scrub the start of xml input, to make things work, even
-        when crap is inserted ahead of the actual xml data. 
-        (such as when php reports strict warnings)"""
-        start = xml.find('<?xml')
-        if start < 0:
-            # '<?xml' not found ? Should not happen.
-            return ""
-        return xml[start:]
-
     def mediawiki_message(self, key):
         """Return the MediaWiki message text for key "key" """
         # Allmessages is retrieved once for all per created Site object
@@ -4964,8 +4954,14 @@
                     # </messages>
                     if elementtree:
                         decode = xml.encode(self.encoding())
-                        clean = self.scrubxml(decode)
-                        tree = XML(clean)
+
+                        # Skip extraneous data such as PHP warning or extra
+                        # whitespaces added from some MediaWiki extensions
+                        xml_dcl_pos = decode.find('<?xml')
+                        if xml_dcl_pos > 0:
+                            decode = decode[xml_dcl_pos:]
+
+                        tree = XML(decode)
                         self._mediawiki_messages = _dict([(tag.get('name').lower(), tag.text)
                                 for tag in tree.getiterator('message')])
                     else:





More information about the Pywikipedia-l mailing list