2

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

4

1 回答 1

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);
于 2011-06-29T09:58:04.737 回答