From 7553dac2f36a1fcd21bb23e7f99bff63b6577f54 Mon Sep 17 00:00:00 2001 From: ichuang Date: Thu, 16 Aug 2012 11:50:04 -0400 Subject: [PATCH] etree parser needs to be set on each call in modulestore load_course --- common/lib/xmodule/xmodule/modulestore/xml.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/common/lib/xmodule/xmodule/modulestore/xml.py b/common/lib/xmodule/xmodule/modulestore/xml.py index 0c0d750882..5fed33220a 100644 --- a/common/lib/xmodule/xmodule/modulestore/xml.py +++ b/common/lib/xmodule/xmodule/modulestore/xml.py @@ -6,6 +6,7 @@ import re from fs.osfs import OSFS from importlib import import_module from lxml import etree +from lxml.html import HtmlComment from path import path from xmodule.errortracker import ErrorLog, make_error_tracker from xmodule.x_module import XModuleDescriptor, XMLParsingSystem @@ -16,9 +17,10 @@ from cStringIO import StringIO from . import ModuleStoreBase, Location from .exceptions import ItemNotFoundError -etree.set_default_parser( - etree.XMLParser(dtd_validation=False, load_dtd=False, - remove_comments=True, remove_blank_text=True)) +edx_xml_parser = etree.XMLParser(dtd_validation=False, load_dtd=False, + remove_comments=True, remove_blank_text=True) + +etree.set_default_parser(edx_xml_parser) log = logging.getLogger('mitx.' + __name__) @@ -209,7 +211,7 @@ class XMLModuleStore(ModuleStoreBase): # been imported into the cms from xml course_file = StringIO(clean_out_mako_templating(course_file.read())) - course_data = etree.parse(course_file).getroot() + course_data = etree.parse(course_file,parser=edx_xml_parser).getroot() org = course_data.get('org')