捕获异常后的xml解析和验证

发布于 2024-11-29 17:16:40 字数 943 浏览 0 评论 0 原文

我有一个像这样的 xml,它是一个有效的 xml。现在,如果我使用 SaxParser 解析它,它会完美验证。

                     <A>
                        <B>
                            <C>
                                <D/>
                            </C>
                            <C>
                                <D/>
                            </c>
                        </B>
                    </A>

考虑下一个 xml,它的结构不好且无效(缺少 )。此时它将抛出 SaxParserException。但我需要编写一段代码来捕获此异常并继续验证此 xml 中的下一组标签。

                    <A>
                        <B>
                            <C>
                                <D/>

                            <C>
                                <D/>
                            </c>
                        </B>
                    </A>

有谁知道如何从捕获异常的地方继续验证 xml

I have an xml like this which is a valid xml. Now if i parse through it using SaxParser, it validates perfectly.

                     <A>
                        <B>
                            <C>
                                <D/>
                            </C>
                            <C>
                                <D/>
                            </c>
                        </B>
                    </A>

Consider next xml which is not well structured and not valid ( < /C> is missing).It will throw SaxParserException at that point. But i need to write a code which catches this exception AND continues validating the next set of tags in this xml.

                    <A>
                        <B>
                            <C>
                                <D/>

                            <C>
                                <D/>
                            </c>
                        </B>
                    </A>

Do anyone know how to continue validating the xml from the point where it caught exception

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

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

发布评论

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

评论(1

还在原地等你 2024-12-06 17:16:40

通常这是不可能的,也不应该是可能的。在第二个示例中,我们不知道实际上缺少什么:是在第一个 之后缺少一个结束标记 (1) 还是在第二个 之后缺少一个结束标记 (2) ,我们是否有 (3) 太多的开始 标记,其中一个 标记实际上应该读取 < C >> ?纠正文档结构的方法太多了。

无论如何,sourceforge 上有一个名为 xmlunit 的项目,其中包含一个 TolerantSaxDocumentBuilder 声称能够处理丢失的开始和结束标签。它可能已经解决了您的实际问题或。至少它指向正确的方向:您需要一个自定义 sax 解析器来实现所需的行为。

Usually it's not possible and shouldn't be possible. At you second example, we have no idea, what's actually missing: is it one end tag (1) after the first <C> or (2) after the second <C>, do we have (3) too many opening <C> tags, should one of the <C> tags actually read <C />? Far too many ways to correct the document structure.

Anyway, there is a project called xmlunit on sourceforge which contains a TolerantSaxDocumentBuilder that claims to be able to handle missing start and end tags. It may already solve your actual problem or. At least it points in the right direction: you need a custom sax parser that implements the required behaviour.

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