Вывод XML в Java - что с DOMImplementationLS? - PullRequest
2 голосов
/ 22 июня 2009

Мне просто нужно было написать следующий глупый класс, чтобы не сойти с ума:

import java.io.OutputStream;

import org.w3c.dom.Document;
import org.w3c.dom.bootstrap.DOMImplementationRegistry;
import org.w3c.dom.ls.DOMImplementationLS;
import org.w3c.dom.ls.LSOutput;
import org.w3c.dom.ls.LSSerializer;

public final class XMLSerializer {
    public static final void writeDocument(Document input, OutputStream output) {
        try {
            DOMImplementationLS ls = 
                (DOMImplementationLS) DOMImplementationRegistry
                .newInstance().getDOMImplementation("LS");
            LSSerializer ser = ls.createLSSerializer();
            LSOutput out = ls.createLSOutput();
            out.setByteStream(output);
            ser.write(input, out);
        } catch (Exception e) { // DIAF Java
            throw new RuntimeException(e);
        }
    }
}

Этот удобный метод уже существует в Java или в общей библиотеке? Это выглядит смехотворно многословно, и это даже версия, где все исключения свернуты под «catch (Exception e)».

Ответы [ 2 ]

0 голосов
/ 22 июня 2009

Попробуйте dom4j . Это отличная библиотека XML.

0 голосов
/ 22 июня 2009

Попробуйте это:

DOMSource domSource = new DOMSource(input);
StreamResult resultStream = new StreamResult(output);
TransformerFactory transformFactory = TransformerFactory.newInstance();
try {
    serializer.transform(domSource, resultStream);
} catch (javax.xml.transform.TransformerException e) {
}
...