如何指定要使用的stax解析器

时间:2011-02-22 22:08:16

标签: stax woodstox

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

2 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:0)

我有类似的问题,我的本地jboss在路径中有woodstox但远程服务器没有(或者没有正确配置的东西)。所以我选择实例化参考实现:

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