import java.io.ByteArrayOutputStream;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
public class Util {
public Util() {
// TODO Auto-generated constructor stub
}
public static String convertXMLSource(final Node node) throws Exception {
// 空のドキュメントを作る。
Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
// Nodeをコピー(インポート)する。
document.appendChild(document.importNode(node, true));
// XMLDocumentからDOMSouceを作る。
DOMSource source = new DOMSource(document);
// 変換ツールを作る。
Transformer transformer = TransformerFactory.newInstance().newTransformer();
// 変換オプションを設定する。
transformer.setOutputProperty(OutputKeys.INDENT, "yes");// インデントつける
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");// インデントは空白4文字分
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");// 先頭の<xml~~は付けない
// 変換用のバッファを作る
StreamResult result = new StreamResult(new ByteArrayOutputStream());
// DOMSourceを表示用のXMLに変換する。
transformer.transform(source, result);
// 文字列
return result.getOutputStream().toString();
}
}