2011-01-28 29 views
5

Hola tengo un servicio web como estacómo analizar el valor del atributo en análisis XML

<audio title="Terry Waychuk Pure2010" audio="http://www.boodang.com/api/audio/**Terry_Waychuk**/Terry_Waychuk_Pure2010.mp3" description="Terry Waychuk Pure2010" createddate = "23-01-2011" thumbnail="http://www.boodang.com/api/thumb/boodean_logo.png" /> 

<audio title="Terry Waychuk frequency2010" audio="http://www.boodang.com/api/audio/**Terry_Waychuk**/Terry_Waychuk_frequency2010.mp3" description="Terry Waychuk frequency2010" createddate = "23-01-2011" thumbnail="http://www.boodang.com/api/thumb/boodean_logo.png" /> 



<audio title="The Grimey Tech RandomHero FlooRLayer Scooty OH Mazik Boodang 10 Year Anniversary Promo Mix" audio="http://www.boodang.com/api/audio/**The_Grimey_Tech**/The_Grimey_Tech_RandomHero_FlooRLayer_Scooty_OH_Mazik_Boodang_10_Year_Anniversary_Promo_Mix.mp3" description="The Grimey Tech RandomHero FlooRLayer Scooty OH Mazik Boodang 10 Year Anniversary Promo Mix" createddate = "23-01-2011" thumbnail="http://www.boodang.com/api/thumb/boodean_logo.png" /> 

<audio title="The Grimey Tech and Titus 1 Warper Warfare" audio="http://www.boodang.com/api/audio/**The_Grimey_Tech**/The_Grimey_Tech_and_Titus_1_Warper_Warfare.mp3" description="The Grimey Tech and Titus 1 Warper Warfare" createddate = "23-01-2011" thumbnail="http://www.boodang.com/api/thumb/boodean_logo.png" /> 
            . 
            . 
            . 
            . 
            . 

los primeros atributos tienen un archivo mp3 en mismo nombre de archivo. el nombre del archivo denotado en ** ** y dos siguientes también tienen un archivo mp3 en el mismo archivo name.so quiero mostrar una vista de lista de archivos de acuerdo con names.first quiero mostrar una vista de lista como esta

Terry_Waychuk 

The_Grimey_Tech 

después haga clic en cualquiera de estos y luego muestre una lista como títulos de archivos mp3 (los primeros dos en Terry_Waychuk y los dos siguientes en The_Grimey_Tech). así que díganme cómo obtener el nombre particular en el valor del atributo y también cómo agregar esos archivos mp3 particulares a esa carpeta (Terry_Waychuk o The_Grimey_Tech).

Respuesta

18

Una forma usando el androide XmlPullParser (que no especifica cuál de ellos estaba utilizando) es para tirar de los atributos en un Map<String, String> cuando reciba una XmlPullParser.START_TAG, por lo que, suponiendo un análisis sintáctico principal ::

private void parseContent(XmlPullParser parser) 
    throws XmlPullParserException,IOException,Exception { 
    int eventType; 
    while((eventType=parser.next()) != XmlPullParser.END_TAG) { 
     if (eventType == XmlPullParser.START_TAG) { 
      Log.d(MY_DEBUG_TAG,"Parsing Attributes for ["+parser.getName()+"]"); 
      Map<String,String> attributes = getAttributes(parser); 
     } 
     else if(eventType==...); 
     else { 
      throw new Exception("Invalid tag at content parse"); 
     } 
    } 
} 

private Map<String,String> getAttributes(XmlPullParser parser) throws Exception { 
    Map<String,String> attrs=null; 
    int acount=parser.getAttributeCount(); 
    if(acount != -1) { 
     Log.d(MY_DEBUG_TAG,"Attributes for ["+parser.getName()+"]"); 
     attrs = new HashMap<String,String>(acount); 
     for(int x=0;x<acount;x++) { 
      Log.d(MY_DEBUG_TAG,"\t["+parser.getAttributeName(x)+"]=" + 
        "["+parser.getAttributeValue(x)+"]"); 
      attrs.put(parser.getAttributeName(x), parser.getAttributeValue(x)); 
     } 
    } 
    else { 
     throw new Exception("Required entity attributes missing"); 
    } 
    return attrs; 
} 

El parser.getName() devuelve el nombre de la entidad asociada al XmlPullParser.START_TAG.

Esperanza esto ayuda

+0

\t \t \t \t \t \t \t cómo obtener el valor de A usando XMLPullparser –