XMLResourceParser, no estoy seguro de cómo leer el XML que tengo
He aquí un ejemplo de mi archivo XML:
<?xml version="1.0" encoding="utf-8"?> <assurances> <assurance hasReference="true"> <message>You're Awesome!</message> <reference>Genesis 1:26</reference> </assurance> <assurance hasReference="true"> <message>Your Wonderfull!</message> <reference>Genesis 1:26</reference> </assurance> </assurances>
Estoy usando código como este para tratar de recuperarlo:
- Dibujo de lienzo que no se dibuja correctamente a pesar de las propiedades de configuración
- Imageview se borra
- Permitir que TextView esté fuera de la pantalla
- Solución automática de laberinto
- BackgroundTint de Lollipop no tiene efecto en un botón
int eventType = -1; while(eventType != XmlResourceParser.END_DOCUMENT) { XmlResourceParser assurances = getResources().getXml(R.xml.assurances); String name = assurances.getText(); Log.d(TAG, name); try { if (assurances.getEventType() == XmlResourceParser.START_TAG) { String s = assurances.getName(); if (s.equals("assurance")) { String strMessage = assurances.getAttributeValue(null, "message"); String strReference = assurances.getAttributeValue(null, "reference"); Log.d(TAG, strMessage); Log.d(TAG, strReference); } } } catch (XmlPullParserException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
No es obtener los datos y no estoy seguro de dónde ir desde aquí.
- Intellij IDEA CE 12 Terminación de código XML de Android no funciona
- Debe utilizar "sp" en lugar de "dp" para los tamaños de texto
- Android Studio no identifica el archivo xml como archivo de diseño
- Android ImageButton - no se puede obtener la imagen en el centro
- ¿Dónde están los esquemas de archivos XML en un proyecto de Android?
- Cómo cambiar la imagen de un botón con cada clic?
- Cómo capitalizar la primera letra del texto en un TextView en una aplicación de Android
- Cómo definir caracteres especiales en la matriz de implementación de java Aplicación?
No es necesario utilizar el método getAttributeValue en su lugar, necesita utilizar el método getText (). He hecho algunos cambios en su código por lo que si utiliza el código a continuación, entonces funcionará bien:
int eventType = -1; while(eventType != XmlResourceParser.END_DOCUMENT) { XmlResourceParser assurances = getResources().getXml(R.xml.assurances); String name = assurances.getText(); Log.d(TAG, name); try { if (assurances.getEventType() == XmlResourceParser.START_TAG) { String s = assurances.getName(); if (s.equals("assurance")) { assurances.next(); /// moving to the next node if(assurances.getName() != null && assurances.getName().equalsIgnoreCase("message")){ String strMessage = assurances.getText(); ///to get value getText() method should be used assurances.next(); ///jumping on to the next node String strReference = assurances.getText(); ////similar to above } Log.d(TAG, strMessage); Log.d(TAG, strReference); } } } catch (XmlPullParserException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
Espero que esto le ayudará en el camino. Saludos
public static void main(String[] args) { try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(new File("c:\\_work\\test.xml")); //get nodes by name NodeList nl = doc.getElementsByTagName("assurance"); int nbrOfElements = nl.getLength(); for (int i = 0; i < nbrOfElements; i++) { Element e = (Element) nl.item(i); System.out.print(e.getTagName()); System.out.print(":"); System.out.println(e.getTextContent()); } } catch (Exception ex) { Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); } }
- Llamar al receptor de difusión al momento de desinstalar la aplicación en android
- ¿Dónde puedo obtener una lista de todos los comandos Robotium?