0

与えられた文字列内の XML エスケープ文字をエスケープ解除する必要があるとします。たとえば、、 、 などと置き換える&amp;必要があります。純粋に機能的なソリューションが望ましいと思います。&&quot;"&lt;<

でそれを行うのは理にかなっていscalaz.Zipperますか?Zipperフォーカスの右側にある文字を確認し、前方に移動しながらそれらをスキップできます。やり過ぎじゃない?もっと簡単な解決策を提案しますか?

4

1 に答える 1

1

Zipperは、文字列内の文字数を変更するマッピングではなく、どちらかの側の文字にアクセスする必要がある 1:1 の文字間マッピングを処理するのに適しています。

XML 解析ライブラリ (scala には scala-xml の形式で妥当なビルトインっぽいライブラリがあります)、文字列エスケープ/エスケープ解除ユーティリティ関数 (xml エンティティ IIRC を処理する apache commons にあります) を使用することをお勧めします。本当に凝った解決策が必要な場合は、scala-parser-combinators を使用して文字列を解析することをお勧めします。

于 2015-01-14T11:37:52.577 に答える