简析xml是 执行不了parse方法
private List<Mp3Info> parseXML(String xmlStr){
SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
List<Mp3Info> infos = new ArrayList<Mp3Info>();
try{
XMLReader xmlReader = saxParserFactory.newSAXParser().getXMLReader();
Mp3ContentHandler mp3ListContentHandler = new Mp3ContentHandler(infos);
xmlReader.setContentHandler(mp3ListContentHandler);
xmlReader.parse(new InputSource(new StringReader(xmlStr)));
for (Iterator<Mp3Info> iterator = infos.iterator(); iterator.hasNext();) {
Mp3Info mp3Info = (Mp3Info) iterator.next();
System.out.println(mp3Info);
}
}
catch(Exception e){
e.printStackTrace();
}
return infos;
}
这个方法是对下载的xml文件的简析
但是这句xmlReader.parse(new InputSource(new StringReader(xmlStr)));执行不了
String xml = downloadXML("http://192.168.136.125:8080/mp3/resouces.xml");
System.out.println(xml);
parseXML(xml);
这段代码是调用上面的方法
System.out.println(xml);
这个可以输出得到的xml文本
xmlReader.parse(new InputSource(new StringReader(xmlStr)));就这句执行了不了 也没有报错 是不是我哪里少了东西了
高手指教
[解决办法]
应该是报异常了吧....你把异常打出来看看再说吧...
[解决办法]
xmlReader.parse(new InputSource(new StringReader(xmlStr)));
这句也有问题,log说了:
09-29 03:56:09.152: INFO/global(207): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required.
所以xmlStr是不是太大了?
你是先把xml内容都读出来了是么?
建议这样
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
MyHandler handler = new MyHandler(context, keyboard, defDis.getWidth(), defDis.getHeight());
System.out.println("getMyKeyboard");
parser.parse(context.getAssets().open(config), handler);
config就是对应的xml文件名,读取的工作交给xml解析来做。
[解决办法]
xml文件格式可能有问题,标签不匹配。下载到本地查看一下