2011-07-05 14 views
1

xmlファイルの一部に問題があります。私はサックスとjavaでそれを解析しています。
テキストのすべての部分(テキストの先頭、テキストの中央、テキストの最後)を取得することはできません。サックス:混在した内容のテキストの解析に問題がある

<sometag type="aType"> 
    beginning of the text   
    <anothertag type="anotherType" target="aTarget">middle of the text</anothertag> 
    end of the text 
</sometag> 
+1

ようこそ。私たちがあなたを助けるためには、動作していないコードを提供する必要があります。それ以外の場合は、単に推測しているだけです。 http://stackoverflow.com/questions/how-to-ask –

答えて

1

SAXは、あなたが経験から何を期待するかを驚くほどです。

イベントハンドラに一部のコンソールログを一時的に格納するか、それらをすべてブレークポイントにして、何を得ているかを確認するための少しのテストを設定します。私はこれが私に期待できるものの「大きな絵」を与えてくれるので、このような場合にログインするほうが好きです。

FWIWでは、Staxは少し簡単でパフォーマンスが似ています。

+0

を参照するか、コンソールログイベントハンドラを使用してスタンドアロンユーティリティを作成してください。あなたはおそらくそれを再び使うでしょう。 –

2

完全に直感的でないため、誰もがContentHandler charactersメソッドの実装を駄目です。 1つの要素のテキストノードに対してcharactersメソッドを複数回呼び出すことができます。渡されたフラグメントをバッファに蓄積する必要があります。 See the Java tutorial on SAX.混在コンテンツでは、startElementとendElementのバッファからテキストを取得する必要があります。

あなたの質問に答えられない場合は、私たちにいくつかのコードを示してください。

+1

また、埋め込まれたタグがあるときには複数のコールしか受け取らないとは思わないでください。**時には**何らかの理由で複数のコールが一見外に出ることもあります。バッファ境界。 –

関連する問題