From bfc268fc6fa45db3262a740757457c95b561614e Mon Sep 17 00:00:00 2001 From: Reinhold Kainhofer Date: Mon, 25 Feb 2008 13:14:25 +0100 Subject: [PATCH] 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. --- python/musicxml.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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() -- 2.39.5