El análisis XML funciona bien con Android 2.2, 2.3 pero no con ICS

Estoy obteniendo algunos datos del servidor utilizando el análisis XML que no funciona con la versión ICS de Android. Aquí está mi, por favor, dígame qué corrección debo hacer para que también pueda ejecutar en ICS... (Funciona bien con menor versiones). Aquí está mi código

try {
        URL url = new URL(
                "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        Document doc = db.parse(new InputSource(url.openStream()));
        doc.getDocumentElement().normalize();
        NodeList nodeList = doc.getElementsByTagName("file");

        namephoto = new String[nodeList.getLength()];
        for (int i = 0; i < nodeList.getLength(); i++) {

            Node node = nodeList.item(i);
            Element fstElmnt = (Element) node;
            NodeList nameList = fstElmnt.getElementsByTagName("file");
            Element nameElement = (Element) nameList.item(0);
            nameList = nameElement.getChildNodes();
            namephoto[i] = ((Node) nameList.item(0)).getNodeValue();

        }
    } catch (Exception e) {
        Log.e("name", "" + e);
    }
    photobitmap = new Bitmap[namephoto.length];

    setPhotoBackground(namephoto[index_photo]);

Mi código XML como este.

<?xml version="1.0"?>
-<root><file>1 a.JPG</file><file>2 b.JPG</file><file>3 c.JPG</file><file>4 d.JPG</file>  </root>

preguntado el 27 de julio de 12 a las 17:07

¿A qué te refieres con "no funciona"? -

conseguir Null Pointer Exception. la excepción ocurre después de esta línea nameList = nameElement.getChildNodes() -

¿Funciona en Honeycomb 3.x? -

1 Respuestas

Tengo la solución yo mismo. Aquí está el código que es compatible con Android 4.0, así como con el resto de las versiones de Android... Simplemente cambie el bucle for de esta manera.

for (int i = 0; i < nodeList.getLength(); i++) {
            Node name = nodeList.item(i);
            NodeList nodeEle = name.getChildNodes();
            namephoto[i] = ((Node) nodeEle.item(0)).getNodeValue();

        }

Respondido 03 ago 12, 15:08

Hola muchas gracias. Este es un problema que tengo. Resolví esto ahora. - Dhamodharan

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