Obtener elementos por nombre de etiqueta de un nodo en documento de Android (XML)?
Tengo un XML como este:
<!--...--> <Cell X="4" Y="2" CellType="Magnet"> <Direction>180</Direction> <SwitchOn>true</SwitchOn> <Color>-65536</Color> </Cell> <!--...-->
Hay muchos Cell elements
, y puedo conseguir los nodos de la célula por GetElementsByTagName
. Sin embargo, me doy cuenta de que la clase de Node
no tiene método GetElementsByTagName
! ¿Cómo puedo obtener el nodo Direction
desde ese nodo de célula, sin pasar por la lista de ChildNodes
de ChildNodes
? ¿Puedo obtener el NodeList
por nombre de etiqueta como de Document
clase Document
?
- Consumir servicio REST Web y analizar datos XML en Android
- XmlPullParserException sólo en ICS
- Quiero analizar Google Map API para el geocódigo inverso en Android
- Android ICS SOAP método no funciona?
- Parsing Soap Uso del servicio de Retrofit Estoy frente a una excepción como este (es decir) modelo de cuerpo desajustado en el modelo de sobre de clase en la respuesta
Gracias.
- Fragmento Google Maps de Google Maps en el xml. Me sale "prefijo de espacio de nombres inesperado"
- Problemas al analizar XML con XSL en él
- XmlPullParser no funciona con InputStream
- Cómo aumentar el tamaño de transport.dump de 256 bytes a 512 o más bytes en KSOAP2?
- Sax - ExpatParser $ ParseException
- ¿Cómo puede convertir el archivo XML local a org.ksoap2.serialization.SoapObject?
- Mensaje de error XML de Android
- Pasar recurso XML a XMLReader
Puede emitir el elemento NodeList
nuevo con Element
y, a continuación, utilizar getElementsByTagName();
de la clase Element
. El mejor acercamiento es hacer un Cell Object
en sus campos del alongwith del proyecto como la Direction
, el Switch
, Color
. A continuación, obtener sus datos algo así.
String direction []; NodeList cell = document.getElementsByTagName("Cell"); int length = cell.getLength(); direction = new String [length]; for (int i = 0; i < length; i++) { Element element = (Element) cell.item(i); NodeList direction = element.getElementsByTagName("Direction"); Element line = (Element) direction.item(0); direction [i] = getCharacterDataFromElement(line); // remaining elements eg Switch , Color if needed }
Donde su getCharacterDataFromElement()
será como sigue.
public static String getCharacterDataFromElement(Element e) { Node child = e.getFirstChild(); if (child instanceof CharacterData) { CharacterData cd = (CharacterData) child; return cd.getData(); } return ""; }
- Problema con la detección de tabletas Synchro Digital
- Fragmento de la pestaña de Android host + viewpager swipe?