[java] XML 문서를 문자열로

XML 문서 ( org.w3c.dom.Document) 의 문자열 표현을 얻는 가장 간단한 방법은 무엇입니까 ? 그것은 모든 노드가 한 줄에 있다는 것입니다.

예를 들어

<root>
  <a>trge</a>
  <b>156</b>
</root>

(이것은 트리 표현 일 뿐이며 내 코드에서는 org.w3c.dom.Document객체이므로 문자열로 취급 할 수 없습니다)

"<root> <a>trge</a> <b>156</b> </root>"

감사!



답변

doc귀하의 인스턴스가 org.w3c.dom.Document다음 과 같다고 가정 합니다 .

TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
StringWriter writer = new StringWriter();
transformer.transform(new DOMSource(doc), new StreamResult(writer));
String output = writer.getBuffer().toString().replaceAll("\n|\r", "");


답변

Apache XMLSerializer 사용

예 :
http://www.informit.com/articles/article.asp?p=31349&seqNum=3&rl=1

이것도 확인할 수 있습니다

http://www.netomatix.com/XmlFileToString.aspx


답변

먼저 모든 텍스트 노드에서 모든 개행 문자를 제거해야합니다. 그런 다음 ID 변환을 사용하여 DOM 트리를 출력 할 수 있습니다. .NET 용 javadoc을 살펴보십시오 TransformerFactory#newTransformer().


답변