Xml extraer elementos del analizador xml
¿Cómo puedo analizar un archivo XML local en la carpeta de activos utilizando analizador de trazo? No puedo obtener analizador de tracción para trabajar. Siempre lanza una excepción. Creo que no puedo conseguir la trayectoria al archivo, o conectar con el archivo.
- KXmlParser lanza la excepción "Símbolo inesperado" al inicio de RSS pasing
- Cómo analizar un feed RSS con XmlPullParser?
- Cómo crear un AttributeSet en Android?
- Cómo obtener un valor de nodo con XmlPullParser
- Manejando espacios de nombres Xml con XmlPullParser
- XmlPullParser obtener archivo del sistema de archivos
- ¿Cómo extracto el texto de un xml anidado usando xmlpullparser en android?
- Obtener stringXmlContent y escribir a continuación, guardado en el archivo .xml almacenado en sdcard en android ¿cómo se puede?
- ¿Cómo puedo analizar XML android?
- Android ksoap llamada xmlpullparser excepción
- XmlPullParserException sólo en ICS
- ArrayIndexOutOfBoundsException en el KXmlParser de android
- ¿Existe una manera de enumerar las funciones XMLPullParser disponibles en el dispositivo Android actual?
Mezcla
Estaba jugando con varias maneras de cargar un archivo local de 'bienes' y 'res', pero para responder a su pregunta como se le preguntó (como nadie más parece tener):
En primer lugar, asegúrese de que su XML es válido antes de probar o desactivar la validación, así es como puede hacer eso e instanciar un analizador de tracción al mismo tiempo:
try { XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); factory.setValidating(false); XmlPullParser myxml = factory.newPullParser();
A continuación, abra el archivo xml y establezca como entrada para su analizador de extracción:
InputStream raw = getApplicationContext().getAssets().open("simple.xml"); myxml.setInput(raw, null);
Ahora la configuración de su bucle de tiro (u otro, depende de si desea hacer tirón diferido o no, que es sus decisiones de diseño:
int eventType = myxml.getEventType(); while(eventType != XmlPullParser.END_DOCUMENT) { if(eventType == XmlPullParser.START_DOCUMENT) { Log.d(MY_DEBUG_TAG, "In start document"); } else if(eventType == XmlPullParser.START_TAG) { Log.d(MY_DEBUG_TAG, "In start tag = "+myxml.getName()); } else if(eventType == XmlPullParser.END_TAG) { Log.d(MY_DEBUG_TAG, "In end tag = "+myxml.getName()); } else if(eventType == XmlPullParser.TEXT) { Log.d(MY_DEBUG_TAG, "Have text = "+myxml.getText()); } eventType = myxml.next(); } } catch (XmlPullParserException e) {
Tenga en cuenta el myxml.getEventType()
, tiene que hacer esto para obtener el parse y manejar qué tipo de eventos que está tirando. Nota: los bloques de captura se omitieron para facilitar la lectura.
Probado lo anterior en 2.1, espero que ayuda -Frank