1.1 --- a/libxml2dom/macrolib/macrolib.py Thu Aug 28 23:35:07 2008 +0200
1.2 +++ b/libxml2dom/macrolib/macrolib.py Thu Aug 28 23:41:04 2008 +0200
1.3 @@ -606,23 +606,23 @@
1.4
1.5 # NOTE: May not be the correct exception.
1.6
1.7 - error = libxml2mod.xmlGetLastError()
1.8 - if error is not None:
1.9 - filename = libxml2mod.xmlErrorGetFile(error)
1.10 - line = libxml2mod.xmlErrorGetLine(error)
1.11 - error_message = libxml2mod.xmlErrorGetMessage(error).strip()
1.12 - message = "Filename %r, line %d: %s" % (filename, line, error_message)
1.13 - else:
1.14 - message = "Document did not validate"
1.15 -
1.16 - raise LSException(LSException.PARSE_ERR,
1.17 - DOMError(DOMError.SEVERITY_FATAL_ERROR, message))
1.18 + raise LSException(
1.19 + LSException.PARSE_ERR,
1.20 + DOMError(
1.21 + DOMError.SEVERITY_FATAL_ERROR,
1.22 + get_parse_error_message() or "Document did not validate"
1.23 + ))
1.24
1.25 elif unfinished or Parser_well_formed(context):
1.26 return doc
1.27 +
1.28 else:
1.29 - raise LSException(LSException.PARSE_ERR,
1.30 - DOMError(DOMError.SEVERITY_FATAL_ERROR, "Document not well-formed"))
1.31 + raise LSException(
1.32 + LSException.PARSE_ERR,
1.33 + DOMError(
1.34 + DOMError.SEVERITY_FATAL_ERROR,
1.35 + get_parse_error_message() or "Document not well-formed"
1.36 + ))
1.37
1.38 def toString(node, encoding=None, prettyprint=0):
1.39 return libxml2mod.serializeNode(node, encoding, prettyprint)
1.40 @@ -661,6 +661,20 @@
1.41 else:
1.42 return 0
1.43
1.44 +def get_parse_error_message():
1.45 + error = libxml2mod.xmlGetLastError()
1.46 + if error is not None:
1.47 + filename = libxml2mod.xmlErrorGetFile(error)
1.48 + if filename is None:
1.49 + filename = "<string>"
1.50 + else:
1.51 + filename = repr(filename)
1.52 + line = libxml2mod.xmlErrorGetLine(error)
1.53 + error_message = libxml2mod.xmlErrorGetMessage(error).strip()
1.54 + return "Filename %s, line %d: %s" % (filename, line, error_message)
1.55 + else:
1.56 + return None
1.57 +
1.58 def Parser_push():
1.59 return libxml2mod.xmlCreatePushParser(None, "", 0, None)
1.60