2011-03-17 62 views
0

我正在使用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的是抽象的,因爲我已經覆蓋每個模塊解析器 所以建議我一個解決方案來解決這個問題

+0

請幫助我......如果有人爲此提供解決方案 – user637503 2011-03-17 08:31:23

回答

0

這是一個known bug。據報道在FroYo(2.2)中是固定的。