2011-03-22 2 views
3

Android에서 SaxParser로 xml 파일을 구문 분석하려고합니다. Android가 saxparser로 xml을 구문 분석 함

내 XML 파일입니다

<?xml version="1.0" encoding="UTF-8"?> 
<cars> 
    <car model="CitroenC3"> 
     <maintenances> 
      <xm:maintenance xmlns:xm="it.a.b.android.c.car.m" distance="" price=""> 
       <xm:type></xm:type> 
      </xm:maintenance> 
     </maintenances> 
     <chargings> 
      <xc:charging xmlns:xc="it.a.b.c.fuelconsumption.car.m" quantity="18" price="20" distance="400" consumption="14"/> 
     </chargings> 
    </car> 
</cars> 

그리고 이것은 코드입니다 :

03-22 15시 24분 : xr.parse 후

// Handling XML 
    SAXParserFactory spf = SAXParserFactory.newInstance(); 
    SAXParser sp = spf.newSAXParser(); 
    XMLReader xr = sp.getXMLReader(); 

    XmlResourceParser parser = getResources().getXml(R.xml.data); 

    // Create handler to handle XML Tags (extends DefaultHandler) 
    DataSaxHandler myXMLHandler = new DataSaxHandler(); 
    xr.setContentHandler(myXMLHandler); 
    InputStream is= getResources().openRawResource(R.xml.data); 
    xr.parse(new InputSource(is)); 

내가 예외가 : 04.248 : INFO/System.out (415) : XML Pasing Excpetion =

org.apache.harmony.xml.ExpatParser$ParseException: At line 1, column 0: not well-formed (invalid token) 

무엇이 잘못되었을 수 있습니까? 고마워요.

+0

당신은 SAX 파서 주장합니까? 거대한 XML 파일이없는 것 같습니까? XML 처리의 최첨단 기술로 vtd-xml을 조사하고 싶을 것 같습니다. –

답변

6

AFAIR res/ 폴더 아래의 xml 파일은 .apk에 저장되기 전에 컴파일됩니다. 거기에서 그것을 assets/ 폴더에 XML 파일을 이동하고로드하려고 :

xr.parse(new InputSource(getAssets().open("data.xml"))); 
+0

java.io.FileNotFoundException : data.xml – michele

+0

data.xml이 자산 폴더에 있음을 반환했습니다 ... 이유! – michele

+0

해결이 파일을 하위 디렉토리에 자산 – michele

관련 문제