2012-06-25 14 views
5
ile çalışmıyor

benim android app xml ayrıştırma için XmlPullParser kullanıyorum ama Reader gibi girişini ayarlamak ederken InputStream olarak değil işleri girişini ayarlamak zaman ben depolamak bileXmlPullParser 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(); 
      } 

çalışmaya başlar Bir dizideki InputStream nesnesinden veri ve giriş olarak String'i ayarladıktan sonra bu kod da iyi çalışır.

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

belgenizdeki xml bildirimi (yani "' '' Kısım) neye benziyor? – Jens

+0

bu benim xml yapımdır – Azmat

+1

"Create" oluşturduğunuz kodu gönderebilir misiniz '? – Jave

cevap

3

Aynı sorun: InputStream'i geçmek doğrudan Android 2.3.3'te düzgün çalışıyor ancak 4.1 üzerinde çalışmıyor. Bu iş parçacığı üzerinde Yano benzer bir sorun için cevap var xpp.setInput(new InputStreamReader(obj));

+1

Android 4.3 Koşu ve InputStreamReader aynı hata üretir. –

0

kullanabilirsiniz: XmlPullParser - unexpected token (android) Sen varlıklara res/xml dosyadan taşımak ve kod ile dosya almak gerekir

:

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

Görünüşe göre getRawResource(), kodlamayı düzgün okumaz ve giriş akışının içeriğini boşaltırsanız, çok sayıda çöp karakteri vardır.

İlgili konular