Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to parse a String containing XML in Java and retrieve the value of the root node?

Tags:

java

xml

root

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.

like image 371
ohGosh Avatar asked Dec 06 '11 23:12

ohGosh


People also ask

How do I read an XML string in Java?

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.

Which is the valid code to extract the root of an XML document in a DOM parser?

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.


1 Answers

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 } 
like image 145
Wayne Avatar answered Sep 21 '22 09:09

Wayne