2013-04-05 4 views
1

안드로이드 SAX 파서에 나는 XML 파일 데이터구문 분석 XML 문자열

를 포함하는 문자열을

<?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> 

이 라벨라는 문자열에 보관됩니다 같은; 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; 
     } 
    } 

SAXHelper sh = null; 

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

      sh.parseContent(""); 

일부를 다음과 같이

나는 데이터를 검색하는 SAX 파서를 사용하지만 난 기형 오류를 보여주는이 오류로 끝납니다. 짧은 나는 sax 파서에 XML 문자열을 설정하고 결과를 얻고 싶습니다.

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"?>.. 

답변

0

당신은 원시 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