2011-12-21 20 views
5

staxパーサーを使用するアプリケーションのメンテナンスを引き継いで、多くのレコードのXMLファイルを個々のレコードに分割して処理します。このタイプのパーサをこの目的のために使用することは、私の意見では過剰ですが、私はそれを書いていませんでした。staxパーサーにJava用のstaxパーサーを通知する必要があります

アプリケーションは、今このようなデータに遭遇されています

<name><![CDATA[A & B]]></name> 

我々の現在のパーサが始まるの「name」タグのためのイベントを返します。 次のイベントは値 'A & B'の文字イベントです。 javax.xml.stream.XMLStreamReaderはCDATAイベントを報告しないストリーミングXMLパーサーで実装


報告CDATAイベント:

は、SunのWebページから、私はこれを見つけました。あなたはこのようなイベントを受信する必要があるアプリケーションを持っている場合は、以下の実装固有のレポート-CDATAイベントプロパティを設定してXMLInputFactoryを設定します。

XMLInputFactory factory = XMLInptuFactory.newInstance(); 
factory.setProperty("report-cdata-event", Boolean.TRUE); 

我々が使用しているパーサは「レポートをサポートしていません。 -cdata-event 'プロパティを使用します。

このようなイベントを報告するパーサを見つけたいので、CDATAコンストラクトで保護する必要がある文字をすべてのテキストでチェックする必要はありません。

UPDATE:これを掲示した後、私は関連の質問のいくつかを閲覧し、「isCoalescing」プロパティの言及があった

。レコードの場合はFALSEに設定されています。

答えて

1

かなり確かにWoodstoxはそれを処理する必要があります。

関連する問題