From: Reinhold Kainhofer Date: Mon, 25 Feb 2008 12:14:25 +0000 (+0100) Subject: MusicXML: Fix using lxml as XML parser X-Git-Tag: release/2.11.42-1~27^2~2 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=bfc268fc6fa45db3262a740757457c95b561614e;p=lilypond.git MusicXML: Fix using lxml as XML parser Unfortunately, the default lxml.etree parser also includes comments in its tree, which does not return a string as its tag, but a built-in function Comment. Thus, I need to filter out all these comments. It seems that lxml does not have any convenient way to check whether a given node is a comment, so I convert it to its string representation and compare with "". Of course, this is a bad hack, but I haven't found a better way yet. --- diff --git a/python/musicxml.py b/python/musicxml.py index f028cce8a3..e9d1ef8bed 100644 --- a/python/musicxml.py +++ b/python/musicxml.py @@ -953,7 +953,9 @@ def get_class (name): def lxml_demarshal_node (node): name = node.tag - if name is None: + # TODO: This is a nasty hack, but I couldn't find any other way to check + # if the given node is a comment node (class _Comment): + if name is None or re.match (u"^$", node.__repr__()): return None klass = get_class (name) py_node = klass()