diff markup/input.py @ 160:faea6db52ef1

Attribute order in parsed XML is now preserved.
author cmlenz
date Wed, 16 Aug 2006 21:54:49 +0000
parents db0dacc1239a
children 41db0260ebb1
line wrap: on
line diff
--- a/markup/input.py
+++ b/markup/input.py
@@ -68,6 +68,8 @@
         parser = expat.ParserCreate('utf-8', '}')
         parser.buffer_text = True
         parser.returns_unicode = True
+        parser.ordered_attributes = True
+
         parser.StartElementHandler = self._handle_start
         parser.EndElementHandler = self._handle_end
         parser.CharacterDataHandler = self._handle_data
@@ -144,7 +146,7 @@
                 self.expat.CurrentColumnNumber)
 
     def _handle_start(self, tag, attrib):
-        self._enqueue(START, (QName(tag), Attributes(attrib.items())))
+        self._enqueue(START, (QName(tag), Attributes(zip(*[iter(attrib)] * 2))))
 
     def _handle_end(self, tag):
         self._enqueue(END, QName(tag))
Copyright (C) 2012-2017 Edgewall Software