Java 中的 XML 输出——DOMImplementationLS 有什么用?

发布于 2024-07-24 22:41:11 字数 937 浏览 5 评论 0原文

我只需要编写以下愚蠢的类以避免发疯:

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)”下的版本。

I just had to write the following stupid class to avoid going insane:

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);
        }
    }
}

Does this convenience method already exist in Java or a common library? It seems ridiculously long-winded, and that's even the version where all exceptions are collapsed under a "catch (Exception e)".

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

乱了心跳 2024-07-31 22:41:12

尝试这个:

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) {
}

Try this:

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) {
}
愁杀 2024-07-31 22:41:12

尝试 dom4j。 它是一个优秀的 XML 库。

Try dom4j. It is an excellent XML library.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文