Digester で XML を解析しています。その一部には、PDF に変換する必要がある不可解な疑似 HTML XML 要素でフォーマットされたコンテンツが含まれています。これは Apache FOP を介して行われます。したがって、コンテンツ要素を含む xml 要素に直接アクセスし、それを FOP にパイプする必要があります。そうするために、Digester FAQには次のいずれかが記載されています。
ネストされた xml を CDATA でラップする
また
これができない場合は、NodeCreateRule を使用して body タグとその子を表す DOM ノードを作成し、その DOM ノードをシリアライズしてテキストに戻す必要があります。
これはサードパーティの XML であるため、このCDATA
アプローチは (別の) XSLT を介してのみ実行できますが、私は躊躇しています。
この問題はNodeCreateRuleで解決できるはずですが、解決方法がわかりません。
ドキュメントにはNodeCreateRule
、ノードをスタックにプッシュすると記載されていますが、null を渡すことしかできません。
私は試した
digester.addRule(docPath + "/contents", new NodeCreateRule());
digester.addCallMethod(docPath + "/contents", "setContentsXML");
setContentsXML には Element パラメータが必要です。
最新の安定した Digester を使用しています。アドバイスをいただければ幸いです。
更新:バグが見つかりまし た 。私のシステムでの結果も null です。JDK 6u24 を使用しています