プロジェクトでユーザーインターフェイスと文字列の変換に使用しているXMLファイルがたくさんあり、それぞれの構造は次のとおりです。
<?xml version="1.0" encoding="UTF-8" ?>
<messages>
<message id="x">
<!-- Text node or arbitrary XHTML markup in here -->
</message>
<message id="y">
<!-- Text node or arbitrary XHTML markup in here -->
</message>
<message id="z">
<!-- Text node or arbitrary XHTML markup in here -->
</message>
...
</messages>
ビルドプロセスの一環として、これらのファイルを1つのXMLファイルに「縮小」したいと思います。これにより、各<message>
タグとそのすべての子が<messages>
タグ内に埋め込まれます。
私が持っている現在の解決策は、grepを使用してXMLプロローグをリッピングし、各ファイルからメッセージタグを開いてメッセージタグを閉じ、XMLプロローグを連結してメッセージを開いた後、結果を新しいファイルに連結し、最後に終了メッセージを連結することです鬼ごっこ。この解決策は...かなり厄介でエラーが発生しやすいです。
では、コマンドラインXMLツールを使用してこのプロセスを自動化するにはどうすればよいですか?xmlpatternsやXSL変換のようなものを使用できますか?
<message>
副次的な質問:各タグにID属性があり、最終的なドキュメントのすべてのID属性値が一意であることを確認するにはどうすればよいですか?私はDTDを使用して最初の部分を実行できることを知っていますが、2番目の部分もDTDの領域にありますか、それとも何か他のことをする必要がありますか?