XMLにインデント、空き要素の終了タグ、好きな改行コードを入れる(Java1.5)
たいした役に立たないかもしれないが、意外に情報がない。
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setAttribute("indent-number", 2); // スペース2個分のインデント DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.newDocument(); // DOMの処理 Transformer transformer = factory.newTransformer(); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); // インデント付きにする // 一旦文字列にするためにByteArrayOutputStreamを使用 ByteArrayOutputStream out = new ByteArrayOutputStream(); transformer.transform( new DOMSource(document), new StreamResult(new OutputStreamWriter(out, "utf-8"))); String xml = out.toString("utf-8"); xml = xml.replaceAll("<([a-zA-Z]+)/>", "<$1></$1>"); xml = xml.replaceAll("\n", "\r\n");
こんな感じ。最後の1行はXMLに限らんけどね。