2012-02-27 9 views
5
<doc> 
<element> 
    text 
    <item> 
    text1 
    </item> 
    <item> 
    text2 
    </item> 
    text3 
</element> 
<element> 
    another text 
</element> 


... 
</doc> 

और मैं इस तरह की एक स्ट्रिंग के लिए पाठ निकालना चाहते हैं:एंड्रॉइड में xmlpullparser का उपयोग करके मैं नेस्टेड एक्सएमएल से टेक्स्ट कैसे निकालूं?

"text text1 text2 text3" 

"आइटम" टैग के अंदर एंड्रॉयड में "तत्व"

xmlpullparser का उपयोग कर इम नेस्टेड रहते हैं, लेकिन मैं किसी भी अन्य पार्सर इस्तेमाल कर सकते हैं अगर यह चीजों को आसान बनाता है। टीएक्स।

+0

यदि स्ट्रिंग्स आप सब के बाद हैं, तो आप केवल strings.xml फ़ाइल का उपयोग क्यों नहीं करते हैं। यह बहुत आसान है। –

+0

यदि आप टैग के बिना टेक्स्ट चाहते हैं, तो आप स्ट्रिंग.रेप्लेस का उपयोग रेगेक्स या कुछ – njzk2

+0

के साथ कर सकते हैं, मुझे यकीन नहीं है कि आपका क्या मतलब है। एंड्रॉइड एसडीके से strings.xml? यह एक तृतीय-पक्ष फ़ाइल है जिसे मुझे – butelo

उत्तर

12

मैं इसी तरह की एक्सएमएल फाइलों का विश्लेषण करता हूं। यहाँ एक उदाहरण है। आपको उचित रूप से त्रुटि जांच जोड़ने की आवश्यकता होगी।

void loadXML(XmlPullParser xpp) { 
    int eventType = xpp.next(); 
    while (eventType != XmlPullParser.END_DOCUMENT) { 
     if (eventType == XmlPullParser.START_TAG && 0 == XML_ELEMENT_TAG.compareTo(xpp.getName())) { 
      loadElement(xpp); 
     } 

     eventType = xpp.next(); 
    } 
} 

private void loadElement(XmlPullParser xpp) { 

    int eventType = xpp.getEventType(); 
    if (eventType == XmlPullParser.START_TAG && 0 == XML_ELEMENT_TAG.compareTo(xpp.getName())) { 
     eventType = xpp.next(); 
     while (eventType != XmlPullParser.END_TAG || 0 != XML_ELEMENT_TAG.compareTo(xpp.getName())) { 
      if (eventType == XmlPullParser.START_TAG &&  0 == XML_ITEM_TAG.compareTo(xpp.getName())) { 
       loadItem(xpp); 
      } 

      eventType = xpp.next(); 
     } 
    } 
} 

private void loadItem(XmlPullParser xpp) { 

    int eventType = xpp.getEventType(); 
    if (eventType == XmlPullParser.START_TAG && 0 == XML_ITEM_TAG.compareTo(xpp.getName())) { 

     eventType = xpp.next(); 
     while (eventType != XmlPullParser.END_TAG || 0 != XML_ITEM_TAG.compareTo(xpp.getName())) { 

      // Get attributes. 
      String attr = xpp.getAttributeValue(null, XML_MY_ATTR); 
      String text = null; 

      // Get item text if present. 
      eventType = xpp.next(); 
      while (eventType != XmlPullParser.END_TAG || 0 != XML_ITEM_TAG.compareTo(xpp.getName())) { 
       if (eventType == XmlPullParser.TEXT) { 
        text = xpp.getText(); 
       } 

       eventType = xpp.next(); 
      } 

      eventType = xpp.next(); 
     } 
    } 
} 
+0

पर सहायक नहीं है यह काम किया! मेरे एक्सएमएल की वजह से बिल्कुल ऐसा नहीं है, लेकिन मुझे अपने पैरों पर रखने के लिए पर्याप्त है। बहुत कुछ टीएक्स – butelo

-3

क्या आपने Android documentation for XMLPullParser पर एक नज़र डाली है? इसका पालन करना बहुत आसान है। हमें बताएं कि क्या आपकी समस्या हल हो जाती है।

+0

मैंने किया और xmlpullparser वेबसाइट भी। नेस्टेड टैग के बारे में नहीं मिला। – butelo

+0

@ माइकडी नकारात्मक। नेस्टेड एक्सएमएल टैग के लिए यह दस्तावेज आसान नहीं है। –

+0

सभी – pat8719

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