0
XML 문서를 만들고 JVM 빌드 라이브러리를 사용하여 들여 쓰기 된 형식으로 인쇄하고 있습니다. 줄 바꿈이 포함 된 문서에서 텍스트 노드가있을 때, 그것은 적절한 위치를 들여 것 대신의 라인의 시작 라인을 감싸는Java : XML 변환, 텍스트 노드의 줄 바꿈, 들여 쓰기가 끊어짐
샘플 코드
ByteArrayOutputStream s;
s = new ByteArrayOutputStream();
Document d = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
Transformer t = TransformerFactory.newInstance().newTransformer();
Element a;
Text b;
a = d.createElement("a");
String text = "multi\nline\ntext";
b = d.createTextNode(text);
a.appendChild(b);
d.appendChild(a);
t.setOutputProperty(OutputKeys.INDENT,"yes");
t.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
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>multi
line
text</a>
원하는 출력
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<a>
multi
line
text
</a>
는 각각의 새로운 라인을 만들 수있는 현명한 방법이 있나요 들여 쓰기 된 xml 태그가 시작될 위치에서 시작 하시겠습니까? 뭔가가 텍스트 노드가 옳은 용도가 아니라고 알려줍니다. 더 좋은 점이 있나요?
맞아,이 코드는 – Mike
에 cdata와 같은 것을 사용하거나 인코딩을 사용하여 한 줄에 입력 할 수 있습니다. 어쨌든 textnode는 내용을 변경하지 않고도 꽤 인쇄 할 수 없습니다. –