In Java, how do I parse XML as a String instead of a file? In Java, how do I parse XML as a String instead of a file? xml xml

In Java, how do I parse XML as a String instead of a file?


I have this function in my code base, this should work for you.

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);}

also see this similar question


One way is to use the version of parse that takes an InputSource rather than a file

A SAX InputSource can be constructed from a Reader object. One Reader object is the StringReader

So something like

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


Convert the string to an InputStream and pass it to DocumentBuilder

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

EDIT
In response to bendin's comment regarding encoding, see shsteimer's answer to this question.