当前位置:编程学习 > wap >>

SAXReader解析xml抛异常

这是本人第一次发帖以前遇到问题都是自己解决或者百度google这次食杂解决不鸟了
有实在不甘心这么不管所以到论坛里来求助  ,Couldn't open http://rss.sina.com.cn/sina_news_opml.xml Nested exception: Couldn't open http://rss.sina.com.cn/sina_news_opml.xml这是抛出来的异常 这个地址在另一个项目里面能准确误区的解析出xml而且我的代码和那个项目里的都一样我甚至把那个项目整个给移植到了新的项目里还是报这个错
崩溃了;下面是代码
**********************************************************
package com.bdqn.NewUtile;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.http.HttpRequest;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;
import org.dom4j.tree.DefaultElement;

public class CategoryParse {

public List parseCategory(String urlString){
List<Map> data=new ArrayList<Map>();
try {
URL url=new URL("http://rss.sina.com.cn/sina_news_opml.xml");
SAXReader saxReader=new SAXReader();
Document doc=saxReader.read(url);

List<DefaultElement> ls  =(List<DefaultElement>) doc.selectNodes("//opml//body//outline//outline");

for (DefaultElement node : ls) {
Map  row = new HashMap();
row.put("title", node.attributeValue("title"));
row.put("xmlUrl", node.attributeValue("xmlUrl"));
System.out.println(node.attributeValue("title")+"  "+node.attributeValue("xmlUrl"));
data.add(row);
}
} catch (MalformedURLException e) {
System.out.println("url地址异常"+e.getMessage());
e.printStackTrace();
} catch (DocumentException e) {
System.out.println("转换document异常"+e.getMessage());
                     //这里就是抛出异常的地方
e.printStackTrace();
}  
return data;
}
}
XML android  SAXReader 异常 --------------------编程问答-------------------- 你测试的系统是4.0以上的么,不要在UI线程里调用网络API(saxReader.read里面用到了网络相关的了),用AsyncTask 来做网络操作。
--------------------编程问答--------------------
引用 1 楼 ultrapro 的回复:
你测试的系统是4.0以上的么,不要在UI线程里调用网络API(saxReader.read里面用到了网络相关的了),用AsyncTask 来做网络操作。
正解 --------------------编程问答--------------------
引用 1 楼 ultrapro 的回复:
你测试的系统是4.0以上的么,不要在UI线程里调用网络API(saxReader.read里面用到了网络相关的了),用AsyncTask 来做网络操作。
但是我之前的那个项目也是这样写的就不会啊 --------------------编程问答-------------------- 操作网络等耗时的数据放在 AsyncTask  里,防止UI线程阻塞,出现异常。 --------------------编程问答-------------------- 额,我记得Android 4.0下,把联网的代码放在UI线程里面会有明确的错误提示的:find NetWork...in UI thread.
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,