Obtener datos de cadena xml del elemento usando XmlPullParser

por ejemplo, tengo un archivo xml:

 <names>
        <item value="Hello" />
        <item value="All" />
        <item value="This" />
        <item value="Data" />
 </names>

Entonces necesito obtener todos los datos sin procesar del atributo dado (nombres):

    <item value="Hello" />
    <item value="All" />
    <item value="This" />
    <item value="Data" />

En un formato de cadena, por lo que los datos deben ser:

String data = "
<item value="Hello" />
<item value="All" />
<item value="This" />
<item value="Data" />
";

y tengo una paz de código:

 int state = 0;
    do {
        try {
            state = parser.next();
        } catch (XmlPullParserException e1) {
            e1.printStackTrace();
        } catch (IOException e1) {
            e1.printStackTrace();
        }       
        if (state == XmlPullParser.START_TAG) {
            if (parser.getName().equals("names")) {

// here I need to get the data
// String data = ...

               break;
            }
        }
    } while(state != XmlPullParser.END_DOCUMENT);

Entonces, ¿cómo obtengo datos del elemento xml en formato de cadena?

preguntado el 03 de mayo de 12 a las 18:05

2 Respuestas

solía DOM2XmlPullBuilder para convertir XmlPullParser en un DOM, luego convierta el DOM en una cadena. El código se parece a esto.

DOM2XmlPullBuilder dom2XmlPullBuilder = new DOM2XmlPullBuilder();
Element element = dom2XmlPullBuilder.parseSubTree(xmlPullParser);
convertNodeToString(element); // implement using a Transformer

respondido 27 mar '13, 19:03

Creo en lugar de donde tienes

if (parser.getName().equals("names")) {...

debería ser algo como esto:

ArrayList<String> data=new ArrayList<String>();
....
....
if (parser.getName().equals("item")) {
   data.add(xpp.getAttributeValue(0));
}

Soy un principiante, así que solo estaba buscando esta información recientemente, afortunadamente encontré una muestra útil de commonsguy (que copió y funcionó bien sin ningún cambio): https://github.com/commonsguy/cw-android/tree/master/Resources/XML

contestado el 04 de mayo de 12 a las 11:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.