下面是我相信可以帮助到你想要什么样:
private void loadXML(Reader reader) throws ParserConfigurationException, SAXException {
SAXParserFactory parserFactory = SAXParserFactory.newInstance();
parserFactory.setValidating(true);
SAXParser parser = parserFactory.newSAXParser();
parser.parse(new InputSource(reader), new MyHandler());
}
private static class MyHandler
extends DefaultHandler {
private static final String PREFS_DTD_URI = "http://www.example.com/dtd/document.dtd";
public InputSource resolveEntity(String publicId, String systemId) throws SAXException {
if (systemId.equals(PREFS_DTD_URI)) {
InputSource is = new InputSource(new StringReader(PREFS_DTD)); // PREFS_DTD is a string containing actual DTD, any other Reader could be here
is.setSystemId(PREFS_DTD_URI);
return is;
}
// else use the default behaviour
return null;
}
}
parserFactory.setValidating(真);行在android中给出Parserconfigurationexception,并给出警告,说明不支持验证的实现。它在java中工作,但不在android中。有没有其他的方法可以在android中进行dtd验证? –
@Mdroid,对不起,可能我错过了“android”标签。这个问题本身并没有说它是关于android平台的。你解决了这个问题吗? –
对不起,我没有问题提到“Android平台”。目前我没有更多的工作。 –