我在类路径中有一个woodstox 和java SE 1.6 stax 解析器,但默认情况下似乎选择了woodstox。但是在某些情况下,我想使用默认的 Java stax 解析器。有没有办法指定使用哪个实现?
问问题
4398 次
2 回答
10
最简单的方法是直接实例化一个你想要的——没有必要使用XMLInputFactory.newInstance()
;对于 Woodstox,您将实例化com.ctc.wstx.stax.WstxInputFactory
. 对于 Sun 实现,它是其他东西(com.sun.sjsxp 等)——如果 Woodstox jar 不在类路径中时通过 Stax API 实例化它,您可以看到类名。
但是,如果您绝对想使用间接,则使用系统属性“javax.xml.stream.XMLInputFactory”的值,根据 javadocs:value 是要实例化的类的名称。
于 2011-02-23T07:12:34.357 回答
0
我遇到了类似的问题,我的本地 jboss 在路径中有woodstox,但远程服务器没有(或者配置不正确)。所以我选择实例化参考实现:
// Use BEA streaming parser to avoid runtime exceptions
XMLOutputFactory xmlof = new XMLOutputFactoryBase();
于 2012-08-16T14:39:12.970 回答