继续求解XML解析,为何在不存在问题的地方出了错,求教高手指点

沉默滴狼 2012-04-01 03:49:25
public InputSource getResource(String path) {
File file = new File(path);
System.out.println("文件名"+file.getAbsolutePath());
System.out.println("进入方法");
try {
System.out.println("---1进入了try");
Reader reader=new FileReader(file);
System.out.println("---2进入了try");
InputSource is=new InputSource(reader);
return is ;
} catch (FileNotFoundException e) {
System.out.println("出错了!");
e.printStackTrace();
}
return null;
}
以上方法是获得一个 InputSource ,经调试 红色部分无法通过

public void onClick(View v) {
SAXParserFactory fac = SAXParserFactory.newInstance();
FileUtils fu = new FileUtils();
String path = "F:\\sample.xml";

InputSource is = fu.getResource(path);

System.out.println(is==null);//控制台输出为true
try {
XMLReader reader = fac.newSAXParser().getXMLReader();
reader.setContentHandler(new MyContentHandler());
reader.parse(is);
} catch (SAXException e) {
e.printStackTrace();
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
通过鼠标点击事件 开始解析XML 此时 is为null
04-01 07:15:51.556: E/AndroidRuntime(319): Uncaught handler: thread main exiting due to uncaught exception
04-01 07:15:51.587: E/AndroidRuntime(319): java.lang.NullPointerException
04-01 07:15:51.587: E/AndroidRuntime(319): at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:270)
04-01 07:15:51.587: E/AndroidRuntime(319): at com.myandroid.download.xmlParseActivity$btnListener.onClick(xmlParseActivity.java:46)此处为reader.parse(is)

04-01 07:40:57.616: I/System.out(416): 文件名/F:/sample.xml
04-01 07:40:57.616: I/System.out(416): 进入方法
04-01 07:40:57.626: I/System.out(416): ---1进入了try
04-01 07:40:57.626: I/System.out(416): 出错了!
04-01 07:40:57.686: I/System.out(416): true


...全文
88 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
沉默滴狼 2012-04-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

我估计是xml编码问题,假如xml的编码是gb2312,你没有给它指定为gb2312,是会出错的。
楼主尝试为InputSource is=new InputSource(reader); 中的reader指定一个正确的编码看看~~
[/Quote]
我找了下相关的方法没见过有给reader设置编码的的呀 该怎么设置呢 我xml用的是UTF-8
别样年华 2012-04-01
  • 打赏
  • 举报
回复
我估计是xml编码问题,假如xml的编码是gb2312,你没有给它指定为gb2312,是会出错的。
楼主尝试为InputSource is=new InputSource(reader); 中的reader指定一个正确的编码看看~~

80,493

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧