2011-06-28 13 views
2

DOMを使用してXMLファイルを作成し、StAXを使用して別のXMLを解析してデータを選択的に書き込みます。DOMを使用してXMLにDTD情報を追加

私は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

+0

、それはその大きなxmlファイルXSLT – artbristol

+0

を使用する方が簡単かもしれないが、私はそれを解析するためのStAXを使用する必要があります。 – Anand

答えて

1

は最終的に答えを見つけたXMLEventReaderオブジェクトです。

ファイルを変換するときにDoctypeが追加されます。あなたがXMLにXMLを変換している場合

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); 
関連する問題