gpt4 book ai didi

java - 将 java xml sax 事件调用转换为 xml 字符串

转载 作者:行者123 更新时间:2023-12-02 11:05:34 26 4
gpt4 key购买 nike

java xml sax api 是否提供了一个 ContentHandler 子类,它将事件调用转换为 xml 字符串。例如,对此处理程序的以下调用应生成以下 xml:

XMLPrinterHandler h;
String data = "hello";
h.startDocument();
h.startElement("", "element", "element", new Attributes());
h.characters(h.toCharArray(), 0, h.size());
h.endElement("", "element", "element");
h.endDocument();
System.out.println(h.getXml());

这应该打印:

<element>hello</element>

我正在处理一些将一些数据编码为 xml 的代码,并且想知道中间输出。编码类采用 ContentHandler 并调用其上适当的方法来对数据进行编码。

最佳答案

你想要:

SAXTransformerFactory f = new SAXTransformerFactory();
TransformerHandler t = new f.newTransformerHandler();
t.setResult(System.out);
t.startDocument();
etc

TransformerHandler 执行从 SAX 输入到词法 XML 输出的“空转换”。

您还可以使用

h.getTransformer().setOutputProperty()

根据 XSLT 规范中定义的属性设置序列化属性,例如缩进。 (标准 JDK TransformerHandler 为您提供 XSLT 1.0 序列化属性,如果您想要 XSLT 3.0 中定义的扩展集以及 Saxon 扩展,请使用 Saxon 实现。)

我个人发现将 Java 代码编写为 SAX ContentHandler 接口(interface)的直接客户端非常笨拙。我更喜欢 XMLStreamWriter 界面。

关于java - 将 java xml sax 事件调用转换为 xml 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50998271/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com