PDA

Ver la Versión Completa : Leer XML DOM - Hijos


Jalballay
21/01/13, 22:32:42
Buenas tengo el siguiente XML:

h t t p://imageshack . u s/photo/my-images/13/xml.png

Y tengo este código para leerla:

nodeopc = doc.getElementsByTagName("choice").item(i).getChildNodes();

for (int xj = 0; xj < nodeopc.getLength(); xj++)
{
if (nodeopc.getLength() > 0)
{
switch (nodeopc.item(xj).getNodeType())
{
case Node.ELEMENT_NODE:

Element element = (Element) nodeopc.item(xj);
Log.i("XXX", "Node name " + element.getNodeName());

if (element.getNodeName().equalsIgnoreCase("choice_option"))
{
nodeitem = doc.getElementsByTagName("choice_option").item(xj).getChildNodes();
for (int j = 0; j < nodeitem.getLength(); j++)
{
if (nodeitem.getLength() > 0)
{
switch (nodeitem.item(j).getNodeType())
{
case Node.ELEMENT_NODE:

Element item = (Element) node2.item(j);

Log.i("XXX", "Node name " + item.getNodeName());
Log.i("XXX", "Node value " + conexion.getNodeValue()); // -> Aqui me devuelve null, pero el getNodeName() me devuelve el nombre que corresponde al tag.
break;
}
}
}
}
break;
}
}
}

Alguien me puede dar una luz de como poder extraer el valor de ese tag NodeName()? de ante mano muchas gracias.

oscar8x
22/01/13, 23:53:56
Buenas tengo el siguiente XML:

h t t p://imageshack . u s/photo/my-images/13/xml.png

Y tengo este código para leerla:

nodeopc = doc.getElementsByTagName("choice").item(i).getChildNodes();

for (int xj = 0; xj < nodeopc.getLength(); xj++)
{
if (nodeopc.getLength() > 0)
{
switch (nodeopc.item(xj).getNodeType())
{
case Node.ELEMENT_NODE:

Element element = (Element) nodeopc.item(xj);
Log.i("XXX", "Node name " + element.getNodeName());

if (element.getNodeName().equalsIgnoreCase("choice_option"))
{
nodeitem = doc.getElementsByTagName("choice_option").item(xj).getChildNodes();
for (int j = 0; j < nodeitem.getLength(); j++)
{
if (nodeitem.getLength() > 0)
{
switch (nodeitem.item(j).getNodeType())
{
case Node.ELEMENT_NODE:

Element item = (Element) node2.item(j);

Log.i("XXX", "Node name " + item.getNodeName());
Log.i("XXX", "Node value " + conexion.getNodeValue()); // -> Aqui me devuelve null, pero el getNodeName() me devuelve el nombre que corresponde al tag.
break;
}
}
}
}
break;
}
}
}

Alguien me puede dar una luz de como poder extraer el valor de ese tag NodeName()? de ante mano muchas gracias.

La línea que dices que te valor null ¿por qué no te lo iba a dar?

"Node value " + conexion.getNodeValue()); // -> Aqui me devuelve null, pero el getNodeName() me devuelve el nombre que corresponde al tag.

En el código que pones no hay objeto "conexion", de ahí que devuelva "null" y para leer el NodeName lo haces del "item".

Para leerlo, sería item.getNodeValue(), en caso de que hayas puesto todo el código