Portar a Android: ¿por qué estoy recibiendo "No se puede crear XMLReader por defecto; Es la propiedad del sistema org.xml.sax.driver set? "?
Estoy portando algún código Java que funcionó bien en mi escritorio para Android. Tengo el siguiente segmento de código:
import org.xml.sax.InputSource; import org.xml.sax.XMLReader; import org.xml.sax.helpers.XMLReaderFactory; // ... XMLReader p = XMLReaderFactory.createXMLReader();
En la última línea recibo la siguiente excepción:
- Analizador de SAX de Android que no obtiene texto completo entre etiquetas
- El resultado es diferente.
- Android SAX Parsing: Cómo conservar Newlines desde dentro de una etiqueta CDATA
- ¿Qué tamaño de archivo xml debe considerarse demasiado grande para un analizador de DOM?
- Cómo analizar XML utilizando el analizador SAX
Can't create default XMLReader; is system property org.xml.sax.driver set?
Cuando estaba probando el código en el escritorio, estaba funcionando bien. ¿Por qué recibo esta excepción en Android y cómo puedo solucionarlo? ¡Gracias!
- Pasar recurso XML a XMLReader
- Cómo ignorar errores XML al analizar XML defectuoso con Sax (en Android)
- Se ha producido un error de análisis XML de Android Error inesperado
- Sax - ExpatParser $ ParseException
- Android: analiza XML desde problemas de cadena
- Cómo conservar los nodos XML que no están enlazados a un objeto cuando se utiliza SAX para analizar
Acabo de ejecutar en el mismo problema al portar algún código a Android. Me di cuenta de que crear mi propia fábrica y analizador parece funcionar.
Intentaría reemplazar esto:
XMLReader p = XMLReaderFactory.createXMLReader();
Con este:
SAXParserFactory saxParserFactory = SAXParserFactory.newInstance(); SAXParser newSAXParser = saxParserFactory.newSAXParser(); XMLReader p = newSAXParser.getXMLReader();
Espero que esto ayude 🙂
Resuelto siguiendo el análisis de un archivo XML utilizando SAX (Tutoriales Java ™> API Java para procesamiento XML (JAXP)> API simple para XML)
Mi solución incluyó el siguiente código en mi MainActivity:
System.setProperty("org.xml.sax.driver","org.xmlpull.v1.sax2.Driver");