Android WARN/ExpatReader(222):DTD处理程序不是';不支持
我使用SAXParser解析从服务器接收的xml数据。 我创建了一个抽象类XMLPARSER,用抽象方法字符()、StestelEnter()、EntEnEngEnter()扩展Debug。我遇到了这个问题(Health/ExpTeaRead(718):不支持DTD处理程序)。我的解析在中间停止了。 我的代码Android WARN/ExpatReader(222):DTD处理程序不是';不支持,android,Android,我使用SAXParser解析从服务器接收的xml数据。 我创建了一个抽象类XMLPARSER,用抽象方法字符()、StestelEnter()、EntEnEngEnter()扩展Debug。我遇到了这个问题(Health/ExpTeaRead(718):不支持DTD处理程序)。我的解析在中间停止了。 我的代码 公共抽象类XmlParser扩展了DefaultHandler{ 公共XmlParser(最终字符串xmlData){ 解析文档(xmlData); } @凌驾 公共摘要无效字符(char
公共抽象类XmlParser扩展了DefaultHandler{
公共XmlParser(最终字符串xmlData){
解析文档(xmlData);
}
@凌驾
公共摘要无效字符(char[]ch,int-start,int-length)
抛出异常;
@凌驾
公共抽象void endElement(字符串uri、字符串localName、字符串qName)
抛出异常;
私有文档(最终字符串xmlData){
SAXParserFactory spf=SAXParserFactory.newInstance();
试一试{
SAXParser sp=spf.newSAXParser();
InputStream is=new ByteArrayInputStream(xmlData.getBytes(“UTF-8”);这是一个。在FroYo(2.2)中被报告为已修复。请帮助我……如果有人能提供解决方案,那就太好了
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;