20

Hi I want to convert XML node and its child into a string with its node names.

For example I get a node from XML document which is look like this:

<Name>
  <Work>*86</Work>
  <Home>*86</Home>
  <Mobile>*80</Mobile> 
  <Work>0</Work>
</Name>

I want to convert whole node into string. With nodenames, not only text. Any help in this regards is greatly appreciated. Thanks.

bluish
  • 26,356
  • 27
  • 122
  • 180
arsalan
  • 203
  • 1
  • 2
  • 5

2 Answers2

34

you can use JDom XMLOutputter subject to the condition that your Element is an org.jdom.Element:

XMLOutputter outp = new XMLOutputter();
String s = outp.outputString(your_jdom_element);
dARKpRINCE
  • 1,538
  • 2
  • 13
  • 22
felixsigl
  • 2,900
  • 1
  • 23
  • 16
28

You can use a transformer for that:

Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");

StreamResult result = new StreamResult(new StringWriter());
DOMSource source = new DOMSource(node);
transformer.transform(source, result);

String xmlString = result.getWriter().toString();
System.out.println(xmlString);
wjans
  • 10,009
  • 5
  • 32
  • 43
  • im working on android 2.0 in which Transformer clases are not available,there is any another way? – arsalan Mar 22 '11 at 12:23