解析xml时,报错:org.apache.harmony.xml.ExpatParser$ParseException: At line 1, column 4:not well-formed(invaild toke)

最近两天看mars老师的mp3播放器,一步一步跟着老师敲的代码,结果运行起来,解析xml时总是报错,表面上看程序执行到某一行不在执行:如下:

System.out.println("----------------------------------2222--");
   XMLReader xmlReader=saxParserFactory.newSAXParser().getXMLReader();
   System.out.println("----------------------------55555--------");
   List<Mp3Info> infos=new ArrayList<Mp3Info>();
   System.out.println("----------------------------6666--------");
   Mp3ListContentHandler mp3ListContentHandler=new Mp3ListContentHandler(infos);
   System.out.println("-----------------------------8888-------");
   xmlReader.setContentHandler(mp3ListContentHandler);
   System.out.println("-------------------------------9999-----");
   StringReader sr=new StringReader(xmlStr);
   System.out.println("-------------------------------997777-----");
   InputSource inputSource=new InputSource(sr);
   System.out.println("-------------------------------95666999-----");
   xmlReader.parse(inputSource);
   System.out.println("------------------------------------111");

程序执行到红色标注部分暂停,程序无法执行,并且总是报一个让人十分郁闷的提示:

org.apache.harmony.xml.ExpatParser$ParseException: At line 1, column 4:not well-formed(invaild toke)

最后经过近4个小时在网上,还有自己程序的调试中的艰苦摸索中,发现在HttpDownloader这个类总的一段代码有点问题(标红代码):

public String download(String urlStr){
  StringBuffer sb=new StringBuffer();
  String  line=null;
  BufferedReader buffer=null;
  try{
   System.out.println("xml==sssss===>+");
   //创建一个URL对象
   URL url=new URL(urlStr);
   //创建一个http连接
   HttpURLConnection urlConn=(HttpURLConnection)url.openConnection();
   
   //使用IO流读取数据
   buffer=new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
   while((line=buffer.readLine())!=null){
    System.out.println(line);
    sb.append("line="+line);      //这里每次读取的xml信息都给它加上了line字符串,最终使我们的xml文件格式不正确。   
   }
  }catch(Exception e){
   e.printStackTrace();
  }finally{
   try{
    buffer.close();
   }catch(Exception e){
    e.printStackTrace();
   }
  }
  
  return sb.toString();
 }


把上面的一段代码:sb.append("line="+line);      改成sb.append(line);  程序okey!  希望碰到此类问题的朋友能早点解决。 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值