Java의 내장 XML 변환기를 사용하여 DOM 문서를 가져와 결과 XML을 인쇄하고 있습니다. 문제는 "indent"매개 변수를 명시 적으로 설정 했음에도 불구하고 텍스트를 전혀 들여 쓰지 않는다는 것입니다.
샘플 코드
public class TestXML {
public static void main(String args[]) throws Exception {
ByteArrayOutputStream s;
Document d = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
Transformer t = TransformerFactory.newInstance().newTransformer();
Element a,b;
a = d.createElement("a");
b = d.createElement("b");
a.appendChild(b);
d.appendChild(a);
t.setParameter(OutputKeys.INDENT, "yes");
s = new ByteArrayOutputStream();
t.transform(new DOMSource(d),new StreamResult(s));
System.out.println(new String(s.toByteArray()));
}
}
결과
<?xml version="1.0" encoding="UTF-8" standalone="no"?><a><b/></a>
원하는 결과
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<a>
<b/>
</a>
생각?
INDENT=yes
추가로 다음을 추가해야했습니다.t.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");