处理 SAX 解析异常

发布于 2024-11-03 23:35:59 字数 325 浏览 5 评论 0原文

我的 SAX xml 解析器有问题。 我想解析一个显然无效的 xml 文件(我得到一个 ExpatParser$ParseException: At line 5, column 169: not well-formed (invalid token))。我知道出了什么问题,但是 xml 文件不是我创建的...所以我无法更改它。

现在我想在我的 DefaultHandler 中处理该错误。但是 error() 、 fatalError() 和 warning() 都没有被调用...

我可以以某种方式中断解析过程,告诉解析器如何处理那段无效的 xml 并继续解析吗?

谢谢, 摩根大通

I have a problem with a SAX xml parser.
I want to parse a xml file which obviously is not valid (I get an ExpatParser$ParseException: At line 5, column 169: not well-formed (invalid token)). I know what is wrong, but the xml file ist not created by me...so I cant change it.

Now I want to handle that Error in my DefaultHandler. But neither error() nor fatalError() nor warning() is invoked...

Can I somehow interrupt the parsing process, tell the parser what to do with that piece of invalid xml and continue parsing???

Thanks,
JPM

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

中性美 2024-11-10 23:35:59

我猜想这个 SAXParseException 是 致命错误,SAX 解析器无法从中恢复。在这种情况下,您可能需要在尝试解析错误标签之前修复它(正如罗伯特在他的评论中建议的那样)。

您可能想考虑使用 Java Regex 来修复 XML 中已知的缺陷,例如
用于引用未加引号的 XML 属性的正则表达式

根据记录,我不是 提倡使用 正则表达式来实际解析XML

I would guess that this SAXParseException is a fatal error that the SAX parser cannot recover from. In that case you probably need to fix up the bad tag before trying to parse it (as Robert suggests in his comment).

You might want to look into using a Java Regex to fix up the known badness in the XML, e.g.
Regex for quoting unquoted XML attributes

For the record, I am not advocating using regex to actually parse XML!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文