4

XML ファイル内のいくつかのノードを更新する必要があります (1 つのテキスト要素を別のテキスト要素に置き換えるだけです)。結果の XML ファイルが (可能な場合) すべての書式を保持するようにします。

たとえば、ソース ドキュメントは次のとおりです。

<project>
    <!-- Some long comment -->
    <!-- On several lines -->
    <name>Name</name> <!-- And here too -->
    <version>1.2.3</version>

</project>

これは必要な結果ドキュメントです (バージョンが変更されていることに注意してください)。

<project>
    <!-- Some long comment -->
    <!-- On several lines -->
    <name>Name</name> <!-- And here too -->
    <version>3.2.1</version>

</project>

したがって、結果はソースからのすべての書式設定を保持し、バージョン タグの内容のみが変更されます。

残念ながら、標準の Clojure (または Java) ライブラリでこれを行う方法が見つかりませんでした。確かに、それらは XML の文字列表現の基本的なインデントをサポートしていますが、私にとっては十分ではありません。

いくつかの XML 操作ライブラリ (できれば Clojure ですが、Java も問題ないと思います) でこれを行う方法はありますか、それともプレーン テキスト/正規表現の置換にフォールバックする必要がありますか? (本当に、 XML タグが目から漏れてほしくありません。これは最後の手段です...)

4

1 に答える 1

0

おそらくハイブリッドなアプローチで、clojure.xml を使用して XML を解析し、置き換えたい正確なテキストを見つけて、正しい箇所を変更していることを確認します。次に、文字列置換を使用して変更します。XML の解析に正規表現を使用するようアドバイスするのはためらわれます

于 2012-12-18T19:06:59.213 に答える