解析XML字符串SAX解析器机器人

解析XML字符串SAX解析器机器人

问题描述:

我有一个包含一个xml文件数据解析XML字符串SAX解析器机器人

字符串

<?xml version="1.0" encoding="UTF-8"?> 

<data> 

<type> 
<lory>vroom</lory> 
<car>crack</car> 
</type> 

<type> 
<lory>doom</lory> 
<car>chack</car> 
</type> 

</data> 

此被保持在名为标签字符串;

我使用SAX解析器来检索数据如下

SAXHelper sh = null; 

      try { 
       sh = new SAXHelper(newxml); 
      } catch (MalformedURLException e) { 
       e.printStackTrace(); 
      } 

      sh.parseContent(""); 

部分saxhelper类

class SAXHelper { 


     public HashMap<String, String> userList = new HashMap<String, String>(); 
     private String data; 

     public SAXHelper(String url1) throws MalformedURLException { 
      this.data = new String(url1); 
     } 

     public RSSHandler parseContent(String parseContent) { 
      RSSHandler df = new RSSHandler(); 
      try { 

       SAXParserFactory spf = SAXParserFactory.newInstance(); 
       SAXParser sp = spf.newSAXParser(); 
       XMLReader xr = sp.getXMLReader(); 
       xr.setContentHandler(df); 
       xr.parse(data); 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
      return df; 
     } 
    } 

的,但我与此错误显示错误畸形结束。简而言之,我想将一个xml字符串传递给sax解析器来设置并获取结果。

04-05 11:25:18.390: W/System.err(2646):  at org.apache.harmony.xml.ExpatParser.openUrl(ExpatParser.java:760) 
04-05 11:25:18.398: W/System.err(2646):  at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:289) 
04-05 11:25:18.398: W/System.err(2646):  at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:322) 
04-05 11:25:18.398: W/System.err(2646):  at .CompteDetails$SAXHelper.parseContent(CompteDetails.java:228) 
04-05 11:25:18.398: W/System.err(2646):  at .CompteDetails$loadingTask.doInBackground(CompteDetails.java:202) 
04-05 11:25:18.398: W/System.err(2646):  at .details.CompteDetails$loadingTask.doInBackground(CompteDetails.java:1) 
04-05 11:25:18.398: W/System.err(2646):  at android.os.AsyncTask$2.call(AsyncTask.java:185) 
04-05 11:25:18.398: W/System.err(2646):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306) 
04-05 11:25:18.398: W/System.err(2646):  at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
04-05 11:25:18.398: W/System.err(2646):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088) 
04-05 11:25:18.398: W/System.err(2646):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581) 
04-05 11:25:18.398: W/System.err(2646):  at java.lang.Thread.run(Thread.java:1019) 
04-05 11:25:18.402: W/System.err(2646): Caused by: java.net.MalformedURLException: Protocol not found: <?xml version="1.0" encoding="UTF-8"?>.. 

你传入原始的XML:

<?xml version="1.0" encoding="UTF- 

因此例外:

04-05 11:25:18.402: W/System.err(2646): Caused by: java.net.MalformedURLException: Protocol not found: <?xml version="1.0" encoding="UTF-8"?> 
+0

细说吗? – yakusha 2013-04-05 08:05:44