使用DOM将DTD信息添加到xml

时间:2011-06-28 11:13:52

标签: java dom stax

我正在使用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对象

1 个答案:

答案 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);