2017-08-24 20 views
0

XMLファイルを変更する必要がありますが、すべてのコメントが出力でトリミングされています。私は検索し、Transformer.setProperty()関数を使用する必要があると思っていますが、その使用方法はわかりません。どんな助けやヒントも非常に高く評価されます。私はXMLの初心者ですので、XMLの用語で私に簡単に行ってください。Java XMLトランスフォーマー - 出力にコメントを残す

おかげで、私は、XMLファイルの先頭から、維持したい場合は、以下の部分

:ここ

<!DOCTYPE ProductDataeXchangePackage [ 
<!-- DTD for IPC-2571 
Public Identifier: "-//IPC//DTD 2571 200111//EN" 
Official Location: http://webstds.ipc.org/2571.dtd --> 

<!ELEMENT AdditionalAttribute EMPTY> 

<!ATTLIST AdditionalAttribute name  CDATA #REQUIRED 
          value  CDATA #REQUIRED 
          dimension CDATA #IMPLIED 
          dataType  (String | 
              Boolean | 
              Float | 
              Double | 
              Decimal | 
              DateTime | 
              Binary | 
              UriReference | 
              Other) #IMPLIED 
          dataTypeOther CDATA #IMPLIED 
          description CDATA #IMPLIED > 
<!ELEMENT AdditionalAttributes (AdditionalAttribute+)> 
]> 

<?pdx_version 1.0?> 
<?generated_by Oracle/Extract/9.3.4/63?> 
..... 

が、それは別のファイルに、書き込みを再私のコードです:

答えて

1

DTDはXSLT/XPathデータモデルの一部ではないため、XSLT変換によって保持されません。その周りにはいくつかの方法がありますが、特定のツールや拡張機能に依存しています。 Javaを使用し、デフォルトのトランスフォーマーのみを使用してDOMツリーをシリアライズする場合、最初にLSSerializerhttps://docs.oracle.com/javase/8/docs/api/org/w3c/dom/ls/LSSerializer.html)がデフォルトのTransformerよりもうまく機能していないかどうかをチェックしてDTDおよび/またはCDATAセクションノードを出力します。

+0

Martinさんに感謝します。私はLSSerializerを見ていきますが、その間に期限を過ぎるためには、ファイル操作を使って出力ファイルに戻す古いファッションのやり方でやります。 – user1941319

関連する問題