From 1dd2a0006eb15ed5dade919ddafa76d3a952eeb3 Mon Sep 17 00:00:00 2001 From: Simon Sapin Date: Tue, 13 Dec 2011 11:45:27 +0100 Subject: [PATCH] Python 2.6 compatibility. --- cairosvg/parser.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/cairosvg/parser.py b/cairosvg/parser.py index d561e9bd..ab8238b4 100644 --- a/cairosvg/parser.py +++ b/cairosvg/parser.py @@ -22,6 +22,9 @@ import os from xml.etree import ElementTree +from xml.parsers import expat + +ParseError = getattr(ElementTree, 'ParseError', expat.ExpatError) class Node(dict): @@ -88,7 +91,7 @@ def __init__(self, text_or_url, parent=None): try: tree = ElementTree.fromstring(text_or_url) self.filename = None - except ElementTree.ParseError: + except ParseError: if "#" in text_or_url: filename, element_id = text_or_url.split("#") else: @@ -102,7 +105,9 @@ def __init__(self, text_or_url, parent=None): with open(filename) as file_descriptor: tree = ElementTree.fromstring(file_descriptor.read()) if element_id: - for element in tree.iter(): + iterator = (tree.iter() if hasattr(tree, 'iter') + else tree.getiterator()) + for element in iterator: if element.get("id") == element_id: tree = element break