我有许多小的 XML 块,它们应该作为子元素嵌入到一个大的 XML 中。有什么办法可以将这些块写入XMLStreamWriter
不逃避他们?
以下是处理此问题的几个选项:
选项 #1 - 使用javax.xml.transform.Transformer
你可以使用javax.xml.transform.Transformer
改造一个StreamSource
将您的 XML 片段表示到您的StAXResult
这是包裹着你的XMLStreamWriter
.
选项#2 - 直接与OutputStream
或者,您可以执行如下操作。您可以利用flush()
来强制XMLStreamWriter
输出其内容。然后你会注意到我这样做xsw.writeCharacters("")
这迫使开始元素结束bar
在将嵌套 XML 编写为String
。需要刷新下面的示例代码才能正确处理编码问题。
import java.io.*;
import javax.xml.stream.*;
public class Demo {
public static void main(String[] args) throws Exception {
OutputStream stream = System.out;
XMLOutputFactory xof = XMLOutputFactory.newFactory();
XMLStreamWriter xsw = xof.createXMLStreamWriter(stream);
xsw.writeStartDocument();
xsw.writeStartElement("foo");
xsw.writeStartElement("bar");
/* Following line is very important, without it unescaped data
will appear inside the <bar> tag. */
xsw.writeCharacters("");
xsw.flush();
OutputStreamWriter osw = new OutputStreamWriter(stream);
osw.write("<baz>Hello World<baz>");
osw.flush();
xsw.writeEndElement();
xsw.writeEndElement();
xsw.writeEndDocument();
xsw.close();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)