XML DOM을 고려하여 문자열에 쓰는 것을 목표로하는 Java 프로그램이 있습니다. 나는이 패키지를 사용하고 있습니다 : org.w3c.dom.*
및 javax.xml.parsers.*;
Java에서 문서에서 xml 문자열 가져 오기
를 그래서 나는이 DocumentBuilder
, Document
, Element
객체 ...
하나의 호출에 내 XML을 DOM을 나타내는 문자열을 얻을 수있는 방법이 있나요
????XML DOM을 고려하여 문자열에 쓰는 것을 목표로하는 Java 프로그램이 있습니다. 나는이 패키지를 사용하고 있습니다 : org.w3c.dom.*
및 javax.xml.parsers.*;
Java에서 문서에서 xml 문자열 가져 오기
를 그래서 나는이 DocumentBuilder
, Document
, Element
객체 ...
하나의 호출에 내 XML을 DOM을 나타내는 문자열을 얻을 수있는 방법이 있나요
????아니고 하나의 호출 만 :
이TransformerFactory transfac = TransformerFactory.newInstance();
Transformer trans = transfac.newTransformer();
trans.setOutputProperty(OutputKeys.METHOD, "xml");
trans.setOutputProperty(OutputKeys.INDENT, "yes");
trans.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", Integer.toString(2));
StringWriter sw = new StringWriter();
StreamResult result = new StreamResult(sw);
DOMSource source = new DOMSource(doc.getDocumentElement());
trans.transform(source, result);
String xmlString = sw.toString();
setOutputProperty 방법이 예뻐 문자열 출력한다 그래서 당신은 그것을 밖으로 걸릴 수 있습니다.
괜찮아요 ...하지만 xml 변환에 대한 호출이 아니에요 ?? 정말 필요한가요? 이 라이브러리가이 목적을 달성하기 위해 tostring을 구현하지 않았을 가능성이 있습니까? ... 그러나 감사합니다. 시도해 볼게. – Andry
DOM을 직렬화하는 저렴하고 효율적인 방법을 찾고 있습니다.
아마도 한 번의 호출이 아닌 LSSerializer 방식을 시도해 볼 수 있습니다.
음, 그렇습니다. 좋은 접근법입니다. 시도해 보았습니다 ... 고맙습니다. – Andry
String xmlString = org.apache.ws.security.util.XMLUtils.PrettyDocumentToString(doc);
메소드 org.apache.axis.utils.XMLUtils.PrettyDocumentToString (문서)는 태그 값에 공백을 포함하는 문제가있다.
해결책은 org.apache.axis.utils.XMLUtils.DocumentToString (Document) 메소드를 사용하는 것입니다.
확실히 - Grammin의 솔루션을 가져 와서 메서드에 추출한 다음 * 하나의 호출 * :'String xml = serialize (document); ' –
글쎄요 ... 포장이 항상 최고의 해결책은 아닙니다. :) 그러나 당신을 행크 : – Andry