반응형
이 코드보다 Java에서 XML 문서를 문자열로 변환하는 더 우아한 방법이 있습니까?
다음은 현재 사용되는 코드입니다.
public String getStringFromDoc(org.w3c.dom.Document doc) {
try
{
DOMSource domSource = new DOMSource(doc);
StringWriter writer = new StringWriter();
StreamResult result = new StreamResult(writer);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.transform(domSource, result);
writer.flush();
return writer.toString();
}
catch(TransformerException ex)
{
ex.printStackTrace();
return null;
}
}
DOM Level3로드 / 저장 에 의존합니다 .
public String getStringFromDoc(org.w3c.dom.Document doc) {
DOMImplementationLS domImplementation = (DOMImplementationLS) doc.getImplementation();
LSSerializer lsSerializer = domImplementation.createLSSerializer();
return lsSerializer.writeToString(doc);
}
이것은 좀 더 간결합니다.
try {
Transformer transformer = TransformerFactory.newInstance().newTransformer();
StreamResult result = new StreamResult(new StringWriter());
DOMSource source = new DOMSource(doc);
transformer.transform(source, result);
return result.getWriter().toString();
} catch(TransformerException ex) {
ex.printStackTrace();
return null;
}
그렇지 않으면 Apache의 XMLSerializer와 같은 라이브러리를 사용할 수 있습니다.
//Serialize DOM
OutputFormat format = new OutputFormat (doc);
// as a String
StringWriter stringOut = new StringWriter ();
XMLSerializer serial = new XMLSerializer (stringOut,format);
serial.serialize(doc);
// Display the XML
System.out.println(stringOut.toString());
변환기 API는 DOM 개체에서 직렬화 된 형식 (이 경우 문자열)으로 변환하는 유일한 XML 표준 방법입니다. 표준으로 SUN Java XML API for XML Processing을 의미 합니다.
Xerces XMLSerializer 또는 JDOM XMLOutputter 와 같은 다른 대안 은보다 직접적인 메서드 (더 적은 코드)이지만 프레임 워크에 따라 다릅니다.
In my opinion the way you have used is the most elegant and most portable of all. By using a standard XML Java API you can plug the XML-Parser or XML-Transformer of your choice without changing the code(the same as JDBC drivers). Is there anything more elegant than that?
You could use XOM to perhaps do this:
org.w3c.dom.Document domDocument = ...;
nu.xom.Document xomDocument =
nu.xom.converters.DOMConverter.convert(domDocument);
String xml = xomDocument.toXML();
반응형
'UFO ET IT' 카테고리의 다른 글
아무도 내 프로젝트를 github에서 푸시 할 수 있습니까? (0) | 2020.11.14 |
---|---|
ES6 객체의 방법 : 화살표 기능 사용 (0) | 2020.11.14 |
Java 열거에서 foreach를 사용할 수없는 이유는 무엇입니까? (0) | 2020.11.14 |
Python의 .get () 메서드 이해 (0) | 2020.11.14 |
HTTP 요청 메서드의 페이로드 (0) | 2020.11.14 |