我發佈了一個可以工作的解決方案,我已經從SAX文檔中獲得了輸入。我已經使用了來自W3學校的示例DTD和XML(http://www.w3schools.com/xml/xml_dtd.asp),如果它在單獨的文件中,則不需要DOCTYPE,因此從DTD中刪除了一行。不知道它是否是你想要的樣品,希望它以某種方式幫助!
public static void main(String[] args) {
try {
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
factory.setValidating(true);
XMLReader reader = factory.newSAXParser().getXMLReader();
reader.parse(new InputSource(new FileInputStream("C:\\DevelopmentTools\\3.CODE\\SAX-XML.txt")));
reader.setEntityResolver(new EntityResolver() {
@Override
public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException {
// TODO Auto-generated method stub
if (systemId == null) {
systemId = "C:\\DevelopmentTools\\3.CODE\\99.WORKSPACE\\Note.dtd";
}
InputSource result = null;
result = new InputSource(systemId);
return result;
}
});
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}