在网上搜到这样的内容:
写道
如果应用程序不关心 DTD,可以通过将解析器的 javax.xml.stream.supportDTD 属性设置为 false 来关闭该特性
我现在需要解析一个xml文件,但我不需要关心他的dtd,我该怎么设置来让解析程序知道呢?
我用的是stax解析xml文件。
xml文件开始部分如下:
<?xml version="1.0" encoding="gb2312"?> <!DOCTYPE NMSI_PM SYSTEM "NPI_PM.DTD">
我的解析代码如下:
XMLInputFactory factory = XMLInputFactory.newInstance(); XMLStreamReader reader = factory.createXMLStreamReader(isr); while (reader.hasNext()) { int eventType = reader.next(); switch (eventType) { case XMLStreamConstants.START_ELEMENT: //code to handle break; case XMLStreamConstants.CHARACTERS: //code to handle break; case XMLStreamConstants.END_ELEMENT: //handle break; } } reader.close();
我没有对dtd进行处理,但运行时就会报错:找不到dtd文件。
我想让stax不在关心dtd声明的部分,该怎么设置呢?