2012-06-25 16 views
5
साथ काम नहीं कर रहा

मैं अपने Android एप्लिकेशन में XML पार्सिंग के लिए XmlPullParser उपयोग कर रहा हूँ लेकिन जब मैं InputStream के रूप में इनपुट सेट यह काम करता है नहीं, जबकि मैं रीडर के रूप में इनपुट सेट यहXmlPullParser InputStream

XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 
factory.setNamespaceAware(true); 
XmlPullParser xpp = factory.newPullParser(); 
xpp.setInput(obj,null);//obj is the object of InputStream 
int eventType = xpp.getEventType(); 
while (eventType != XmlPullParser.END_DOCUMENT) { 
       logger.println("eventType.."+eventType); 
       if(eventType == XmlPullParser.START_DOCUMENT) { 

        // control goes here only 

       } else if(eventType == XmlPullParser.START_TAG) { 
        //This block never executed 
        } 

       } else if(eventType == XmlPullParser.END_TAG) { 
       //This block never executed 
       } else if(eventType == XmlPullParser.TEXT) { 

       } 
       eventType = xpp.next(); 
      } 

काम करना शुरू यहां तक ​​कि अगर मैं स्टोर स्ट्रिंग में इनपुटस्ट्रीम ऑब्जेक्ट से डेटा और स्ट्रिंग को इनपुट के रूप में सेट करें, तो यह कोड भी ठीक काम करता है।

xpp.setInput(new StringReader(str));//str contains the data from InputStream 
+0

क्या XML घोषणा (अर्थात "' '" भाग) अपने दस्तावेज़ में कैसा दिखता है? – Jens

+0

\t इसे मेरा एक्सएमएल संरचना – Azmat

+1

आप कोड जहां 'obj बनाने पोस्ट कर सकते हैं है '? – Jave

उत्तर

3

वही समस्या: इनपुट इनपुट स्ट्रीमिंग एंड्रॉइड 2.3.3 पर ठीक काम करता है लेकिन 4.1 पर काम नहीं करता है। आप उपयोग कर सकते हैं xpp.setInput(new InputStreamReader(obj));

+1

काम नहीं चल रहा है Android 4.3 और InputStreamReader वही त्रुटि उत्पन्न करता है। –

0

इस धागे पर यानो से एक ऐसी ही समस्या के लिए जवाब मिल गया: XmlPullParser - unexpected token (android)

आप से रेस/xml संपत्ति के लिए फ़ाइल से ले जाने और कोड के साथ फाइल प्राप्त करने की आवश्यकता:

InputStream in = this.getAssets().open("sample.xml"); 

जाहिर getRawResource() एन्कोडिंग ठीक से पढ़ नहीं है और अगर आप सिर्फ InputStream की सामग्री को डंप कचरा पात्रों में से बहुत सारे हैं।

संबंधित मुद्दे