diff --git a/openlp/plugins/bibles/lib/opensong.py b/openlp/plugins/bibles/lib/opensong.py index 856e9057e..33c7f610e 100644 --- a/openlp/plugins/bibles/lib/opensong.py +++ b/openlp/plugins/bibles/lib/opensong.py @@ -46,6 +46,22 @@ class OpenSongBible(BibleDB): BibleDB.__init__(self, parent, **kwargs) self.filename = kwargs['filename'] + def get_text(self, element): + """ + Recursively get all text in an objectify element and its child elements. + + ``element`` + An objectify element to get the text from + """ + verse_text = u'' + if element.text: + verse_text = element.text + for sub_element in element.iterchildren(): + verse_text += self.get_text(sub_element) + if element.tail: + verse_text += element.tail + return verse_text + def do_import(self, bible_name=None): """ Loads a Bible from file. @@ -89,7 +105,7 @@ class OpenSongBible(BibleDB): db_book.id, int(chapter.attrib[u'n'].split()[-1]), int(verse.attrib[u'n']), - unicode(verse.text)) + unicode(self.get_text(verse))) self.wizard.incrementProgressBar(unicode(translate( 'BiblesPlugin.Opensong', 'Importing %s %s...', 'Importing ...')) %