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

Fre*_*k L 5 stax woodstox

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

Sta*_*Man 7

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

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