0

私の XML ファイルには、特殊文字を持つタグがあります。

<journal>Universit&auml;t Trier</journal>

SAXパーサーを実行すると、文字列が2つに分割されることに気付きました

String 1: Universit
String 2: &auml;t Trier

ただし、データベースに適切に格納するには、コンテンツを 1 つの文字列全体として読み取る必要があります。2 弦に分割することはできません。とにかく SAX パーサーがこれを行うのはなぜですか?

次のメソッドは、読み取りを行う SAX パーサーの一部です。

public void characters(char ch[], int start, int length) throws SAXException 
{
                       ...
}
4

1 に答える 1

4

これはバグではありません。

これは単に SAX が設計された方法であり、混合コンテンツを処理できるようにするためには、このようにする必要があります。

混合コンテンツがなければ、実際には非常に単純です。

必要なことは、SAXContentHandlerインターフェースの独自の実装でフラグメントを再結合することです。

通常、これはメソッド内でStringBuilderorStringBufferフィールドを初期化し、startElementメソッド内でそれに追加し、メソッド内charactersでそれを に変換することを意味します。StringendElement

于 2013-10-12T19:54:44.187 に答える