我正在使用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