1

I have following XML string:

<persons>
    <person>
        <name>Someone</name>
        <age>27</age>
    </person>
    <person>
        <name>Otherone</name>
        <age>43</age>
    </person>
</persons>

I want to take this string and to get from it a DOM object. It could be any XML string (not from file!).

Sorry for this newbie question,Thanks a lot for helpers.

bluish
  • 26,356
  • 27
  • 122
  • 180
Yosi
  • 2,936
  • 7
  • 39
  • 64

2 Answers2

3
org.w3c.dom.Document doc =
  javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder(
        ).parse(
   new org.xml.sax.InputSource(new java.io.StringReader(xmlString)));
khachik
  • 28,112
  • 9
  • 59
  • 94
  • Thanks,It returns an exception if the xml string is not well formated,How I can work with non-well formated xml strings? – Yosi Nov 10 '10 at 19:12
  • @Yosi You can catch the exception and report the error. If you want to fetch data from a string which may or may not contain well-formed XML you might want use regular expressions. – khachik Nov 10 '10 at 19:18
  • @Yosi another approach: use SAX parser and handle tags/attrs/characters until the parser hasn't met the error. Maybe you can explain what you want to do? – khachik Nov 10 '10 at 19:21
  • Hi,I am sorry ,it works very well with unformated xml string . – Yosi Nov 10 '10 at 19:22
0

Try this:

import java.io.IOException;

import org.apache.xerces.parsers.DOMParser;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;



public class String2XML {

    public static void main(String[] args) throws SAXException, IOException {
        String xml="<persons><person><name>Someone</name><age>27</age></person><person><name>Otherone</name><age>43</age></person></persons>";
        DOMParser parser = new DOMParser();
        parser.parse(new InputSource(new java.io.StringReader(xml))); 
        Document doc = parser.getDocument();
        System.out.println("String2XML.main()-"+doc.toString());
    }
}

Dont forget including xercesImpl.jar and xml-apis.jar in your classpath. You can find them here http://archive.apache.org/dist/xml/xerces-j/binaries/

jLuengas
  • 71
  • 6