如何指定使用哪个 stax 解析器

发布于 2024-10-18 21:07:08 字数 115 浏览 2 评论 0原文

我的类路径中有一个 woodstox 和 java SE 1.6 stax 解析器,但 woodstox 似乎默认被选中。 然而,在某些情况下,我想使用默认的 Java stax 解析器。有没有办法指定使用哪个实现?

I have a woodstox and and java SE 1.6 stax parser in the classpath but woodstox seems to get selected by default.
However in certain cases I'd like to use the default Java stax parser. Is there any way to specify which implementation to use?

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

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

发布评论

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

评论(2

向地狱狂奔 2024-10-25 21:07:08

最简单的方法是直接实例化你想要的——不需要使用 XMLInputFactory.newInstance() ;对于 Woodstox,您需要实例化 com.ctc.wstx.stax.WstxInputFactory。对于 Sun 实现,它是其他东西(com.sun.sjsxp 等)——如果当 Woodstox jar 不在类路径中时通过 Stax API 实例化它,您可以看到类名称。

但如果您绝对想使用间接寻址,则使用系统属性“javax.xml.stream.XMLInputFactory”的值,根据 javadocs:值是要实例化的类的名称。

Easiest way is to just directly instantiate one you want -- there is no need to use XMLInputFactory.newInstance(); for Woodstox you would instantiate com.ctc.wstx.stax.WstxInputFactory. For Sun implementation it is something else (com.sun.sjsxp or such) -- you can see class name if you instantiate it via Stax API when Woodstox jar is not in classpath.

But if you absolutely want to use indirection, value of system property "javax.xml.stream.XMLInputFactory" is used, as per javadocs: value is the name of class to instantiate.

荒岛晴空 2024-10-25 21:07:08

我遇到了类似的问题,我的本地 jboss 路径中有 woodstox,但远程服务器没有(或者某些内容配置不正确)。所以我选择实例化参考实现:

        // Use BEA streaming parser to avoid runtime exceptions
        XMLOutputFactory xmlof = new XMLOutputFactoryBase();

I had a similar problem, my local jboss has woodstox in the path but the remote server don't (or something is not properly configured). So I chose to instantiate the reference implementation:

        // Use BEA streaming parser to avoid runtime exceptions
        XMLOutputFactory xmlof = new XMLOutputFactoryBase();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文