XmlPullParser: obtener texto interno incluyendo etiquetas XML
Supongamos que tiene un documento XML así:
<root> That was a <b boldness="very">very bold</b> move. </root>
Supongamos que XmlPullParser
está en la etiqueta de apertura de root. ¿Hay un método práctico para leer todo el texto dentro de la root
a una String
, tipo de innerHtml
en DOM?
- Xml getText devolver null - Android
- Cómo obtener un valor de nodo con XmlPullParser
- Cómo analizar un feed RSS con XmlPullParser?
- ¿Cómo puedo analizar XML android?
- XmlPullParser getAttributeValue devuelve null
¿O tengo que escribir un método de utilidad yo mismo que recrea la etiqueta analizada? Esto, por supuesto, parece una pérdida de tiempo para mí.
String myDesiredString = "That was a <b boldness=\"very\">very bold</b> move."
- ¿Cómo extracto el texto de un xml anidado usando xmlpullparser en android?
- XmlPullParser: PI no debe comenzar con xml, pero solo en Android 2.3.3 hacia abajo
- XmlPullParser obtener archivo del sistema de archivos
- Analizador XML personalizado de Android falla al resolver el espacio de nombres android
- Android ksoap llamada xmlpullparser excepción
- Diferencia entre el analizador XML SAX, analizador de tracción y analizador de DOM en android
- Parser SAX vs analizador XMLPull
- XmlPullParserException al analizar un archivo de recursos en Android
Este método debe cubrirlo, pero no trata con etiquetas singleton o espacios de nombres.
public static String getInnerXml(XmlPullParser parser) throws XmlPullParserException, IOException { StringBuilder sb = new StringBuilder(); int depth = 1; while (depth != 0) { switch (parser.next()) { case XmlPullParser.END_TAG: depth--; if (depth > 0) { sb.append("</" + parser.getName() + ">"); } break; case XmlPullParser.START_TAG: depth++; StringBuilder attrs = new StringBuilder(); for (int i = 0; i < parser.getAttributeCount(); i++) { attrs.append(parser.getAttributeName(i) + "=\"" + parser.getAttributeValue(i) + "\" "); } sb.append("<" + parser.getName() + " " + attrs.toString() + ">"); break; default: sb.append(parser.getText()); break; } } String content = sb.toString(); return content; }