我有一些小的XML块,应该作为子元素嵌入到一个大的XML中.有没有办法在XMLStreamWriter没有逃避它们的情况下编写这些块?
以下是处理此问题的几个选项:
javax.xml.transform.Transformer您可以使用a javax.xml.transform.Transformer将StreamSource表示XML片段的XML 转换StAXResult为包装您的XML片段XMLStreamWriter.
OuputStream或者,您可以执行以下操作.您可以利用flush()强制XMLStreamWriter输出其内容.然后你会注意到我这样做会xsw.writeCharacters("")强制start元素结束,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();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3607 次 |
| 最近记录: |