pasar parse java xml string file parsing

parse - string to xml java



En Java, ¿cómo puedo analizar XML como una cadena en lugar de un archivo? (6)

Tengo el siguiente código:

DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(xmlFile);

¿Cómo puedo hacer que analice el XML contenido dentro de una cadena en lugar de un archivo?


Convierta la cadena a un InputStream y pásela a DocumentBuilder

final InputStream stream = new ByteArrayInputStream(string.getBytes(StandardCharsets.UTF_8)); DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); builder.parse(stream);

EDITAR
En respuesta al comentario de bendin sobre la codificación, vea la respuesta de shsteimer a esta pregunta.


Estoy usando este metodo

public Document parseXmlFromString(String xmlString){ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); InputStream inputStream = new ByteArrayInputStream(xmlString.getBytes()); org.w3c.dom.Document document = builder.parse(inputStream); return document; }


Puede usar el paquete Scilca XML Progession disponible en GitHub.

XMLIterator xi = new VirtualXML.XMLIterator("<xml />"); XMLReader xr = new XMLReader(xi); Document d = xr.parseDocument();


Tengo esta función en mi base de código, esto debería funcionar para usted.

public static Document loadXMLFromString(String xml) throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); InputSource is = new InputSource(new StringReader(xml)); return builder.parse(is); }

También vea esta pregunta similar


Una forma es usar la versión de análisis que toma un InputSource en lugar de un archivo

Un SAX InputSource puede construirse a partir de un objeto Reader. Un objeto Reader es el StringReader

Así que algo como

parse(new InputSource(new StringReader(myString))) may work.


javadocs muestra que el método de análisis está sobrecargado.

Cree un StringStream o InputSource utilizando su cadena XML y debe configurarlo.