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;

rXMLEventReaderオブジェクトです

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 に答える