I have XML in the form of a String that contains
<message>HELLO!</message>
How can I get the String "Hello!" from the XML? It should be ridiculously easy but I am lost. The XML isn't in a doc, it is simply a String.
In this article, you will learn three ways to read XML files as String in Java, first by using FileReader and BufferedReader, second by using DOM parser, and third by using open-source XML library jcabi-xml.
Instantiate XML file: DOM parser loads the XML file into memory and consider every tag as an element. Get root node: Document class provides the getDocumentElement() method to get the root node and the element of the XML file.
Using JDOM:
String xml = "<message>HELLO!</message>"; org.jdom.input.SAXBuilder saxBuilder = new SAXBuilder(); try { org.jdom.Document doc = saxBuilder.build(new StringReader(xml)); String message = doc.getRootElement().getText(); System.out.println(message); } catch (JDOMException e) { // handle JDOMException } catch (IOException e) { // handle IOException }
Using the Xerces DOMParser
:
String xml = "<message>HELLO!</message>"; DOMParser parser = new DOMParser(); try { parser.parse(new InputSource(new java.io.StringReader(xml))); Document doc = parser.getDocument(); String message = doc.getDocumentElement().getTextContent(); System.out.println(message); } catch (SAXException e) { // handle SAXException } catch (IOException e) { // handle IOException }
Using the JAXP interfaces:
String xml = "<message>HELLO!</message>"; DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = null; try { db = dbf.newDocumentBuilder(); InputSource is = new InputSource(); is.setCharacterStream(new StringReader(xml)); try { Document doc = db.parse(is); String message = doc.getDocumentElement().getTextContent(); System.out.println(message); } catch (SAXException e) { // handle SAXException } catch (IOException e) { // handle IOException } } catch (ParserConfigurationException e1) { // handle ParserConfigurationException }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With