我有一个引用dtd文件的xml文件。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE varman SYSTEM "referenced.dtd">
...我成功地用JAXP读取了这些文件,但前提是referenced.dtd与xml文件位于同一个文件夹中。否则,我会得到一个异常,即dtd文件无法加载。我无法找到插入处理程序或任何东西来解决这个丢失资源的位置。请给我启发!
发布于 2013-12-09 23:23:31
使用属性设置允许外部路径:
添加错误处理程序以捕获不受支持的属性:
public boolean isNewPropertySupported() {
try {
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser parser = spf.newSAXParser();
parser.setProperty("http://javax.xml.XMLConstants/property/accessExternalDTD", "file");
} catch (ParserConfigurationException ex) {
fail(ex.getMessage());
} catch (SAXException ex) {
String err = ex.getMessage();
if (err.indexOf("Property 'http://javax.xml.XMLConstants/property/accessExternalDTD' is not recognized.") > -1)
{
//expected, jaxp 1.5 not supported
return false;
}
}
return true;
}https://stackoverflow.com/questions/17840474
复制相似问题