我正在使用SAXParser解析从服务器接收到的xml数据。 (WARN/ExpatReader(718):不支持DTD处理程序)。我的语法分析停止在()函数中。在middle.I都提到了一些答案建议按照以下代码 我的代码WARN/ExpatReader(222):不支持DTD处理程序
public abstract class XmlParser extends DefaultHandler {
public XmlParser(final String xmlData) {
parseDocument(xmlData);
}
@Override
public abstract void characters(char[] ch, int start, int length)
throws SAXException;
@Override
public abstract void endElement(String uri, String localName, String qName)
throws SAXException;
private void parseDocument(final String xmlData) {
SAXParserFactory spf = SAXParserFactory.newInstance();
try {
SAXParser sp = spf.newSAXParser();
InputStream is = new ByteArrayInputStream(xmlData.getBytes("UTF-8"));<----I think i have to change here
sp.parse(is, this);
} catch (SAXException ex) {
ex.printStackTrace();
} catch (ParserConfigurationException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
@Override
public abstract void startElement(String uri, String localName,
String qName, Attributes attributes) throws SAXException;
}
简称答案
的XMLReader的XMLReader = SAXParserFactory.newInstance()。newSAXParser()。getXMLReader( ); xmlReader.setContentHandler(// YourHandler extends DefaultHandler); xmlReader.parse(new InputSource(// BufferedReader));
对我来说问题 我有一个扩展了defaulthandler的抽象类。 我不能创建一个对象来传递setContentHandler()方法。 我应该记住这XmlParser的是抽象的,因为我已经覆盖每个模块解析器 所以建议我一个解决方案来解决这个问题
请帮助我......如果有人为此提供解决方案 – user637503 2011-03-17 08:31:23