web-dev-qa-db-ja.com

XML要素とその子ノードをJavaで文字列に変換する方法は?

こんにちは、XMLノードとその子をノード名を含む文字列に変換したいと思います。

たとえば、次のようなXMLドキュメントからノードを取得します。

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

ノード全体を文字列に変換したい。ノード名では、テキストだけでなく。この点でどんな助けでも大歓迎です。ありがとう。

19
arsalan

jDom XMLOutputter を使用できますが、Elementがorg.jdom.Elementであるという条件に従います。

XMLOutputter outp = new XMLOutputter();
String s = outp.outputString(your_jdom_element);
29
felixsigl

そのためにトランスフォーマーを使用できます。

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);
27
wjans