在网上搜到这样的内容:
写道
如果应用程序不关心 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声明的部分,该怎么设置呢?