Prefiero el StringReader porque evita String.getBytes (), pero esto generalmente debería funcionar también.
Michael Myers
3
Cuando llamas a getBytes (), ¿qué codificación esperas que use? ¿Cómo le está diciendo al analizador XML qué codificación está recibiendo? ¿Esperas que adivine? ¿Qué sucede cuando estás en una plataforma donde la codificación predeterminada no es UTF-8?
javax.xml.parsers.DocumentBuilder.parse(string)
supone que la cadena es un uri (terrible ...)Respuestas:
Tengo esta función en mi base de código, esto debería funcionar para usted.
También vea esta pregunta similar
fuente
import org.xml.sax.InputSource;
Una forma es usar la versión de parse que toma InputSource en lugar de un archivo
Un SAX InputSource se puede construir a partir de un objeto Reader. Un objeto Reader es el StringReader
Entonces algo como
fuente
Los javadocs muestran que el método de análisis está sobrecargado.
Cree un StringStream o InputSource utilizando su XML de cadena y debería estar configurado.
fuente
Convierta la cadena en un InputStream y páselo a DocumentBuilder
EDITAR
En respuesta al comentario de bendin sobre la codificación, vea la respuesta de shsteimer a esta pregunta.
fuente
Estoy usando este metodo
fuente
Puede usar el paquete Scilca XML Progession disponible en GitHub.
fuente
solo ingrese
fuente