我正在使用DOM创建XML文件,并使用StAX解析另一个xml以有选择地写入数据。
我遇到了Stax的DTD事件,但我不知道如何将其写入DOM文档。
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
while (r.hasNext()) {
int eventType = r.next();
Node child;
switch (eventType) {
case XMLStreamConstants.CDATA:
child = doc.createCDATASection(r.getText());
break;
case XMLStreamConstants.DTD:
//??? - what shoould come here?
break;
r
是XMLEventReader对象
答案 0 :(得分:1)
最后找到了答案。
转换文件时会添加Doctype。
Transformer tFormer =
TransformerFactory.newInstance().newTransformer();
// Set system id
tFormer.setOutputProperty(
OutputKeys.DOCTYPE_SYSTEM, "systmId");
Source source = new DOMSource(doc);
Result result = new StreamResult(System.out);
tFormer.transform(source, result);