From 8e8228a69a3de53dd95eea53df250c528b0ec7dc Mon Sep 17 00:00:00 2001 From: Tomas Groth Date: Thu, 29 Jan 2015 15:06:44 +0100 Subject: [PATCH] Make xml parsing of presentation manager files recover if errors are encountered. Fixes bug 1414980. Fixes: https://launchpad.net/bugs/1414980 --- openlp/plugins/songs/lib/importers/presentationmanager.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openlp/plugins/songs/lib/importers/presentationmanager.py b/openlp/plugins/songs/lib/importers/presentationmanager.py index f35b812a1..eb60f16e1 100644 --- a/openlp/plugins/songs/lib/importers/presentationmanager.py +++ b/openlp/plugins/songs/lib/importers/presentationmanager.py @@ -25,7 +25,7 @@ Presentationmanager song files into the current database. """ import os -from lxml import objectify +from lxml import objectify, etree from openlp.core.ui.wizard import WizardStrings from .songimport import SongImport @@ -42,7 +42,8 @@ class PresentationManagerImport(SongImport): if self.stop_import_flag: return self.import_wizard.increment_progress_bar(WizardStrings.ImportingType % os.path.basename(file_path)) - root = objectify.parse(open(file_path, 'rb')).getroot() + tree = etree.parse(file_path, parser=etree.XMLParser(recover=True)) + root = objectify.fromstring(etree.tostring(tree)) self.process_song(root) def process_song(self, root):