現在、XMLファイルの一部をHTMLエンコードする必要のある短いSEDスクリプトに取り組んでいます。スクリプトは現在、次のようになります。SED - XMLファイルの特定のタグ間のHTMLエンコード
sed.exe "/<messageData>/,/<\/messageData>/ {/<messageData>/b;/<\/messageData>/b; s/</\</g; s/>/\>/g; }" %1 >%2
だから、基本的に、とタグの間に、<と>ですべて<と>を置き換えます。
このスクリプトは、それが
<?xml version="1.0" encoding="ISO-8859-1"?>
<Messages>
<messageData>
<test>DATA</test>
</messageData>
</Messages>
私は必要なものである
<?xml version="1.0" encoding="ISO-8859-1"?>
<Messages>
<messageData>
<test>DATA</test>
</messageData>
</Messages>
として出てくるで、かなり印刷XMLで完璧に動作します。
<?xml version="1.0" encoding="ISO-8859-1"?>
<Messages><messageData><test>DATA</test></messageData></Messages>
そして、このフォーマットで、スクリプトは、もはや作品:私の問題は、私はプロセスを必要とするファイルがきれいに印刷されていないことである、すべてのものはこのように、単一の行にありません。 両方の形式で動作するようにスクリプトを変更する可能性はありますか?
出力形式には影響しません.SEDは使用するスクリプトエンジンです。
私はちょうど各ファイルの後に改行を挿入する別のSEDスクリプトを作成して、それから私が今作成したスクリプトを実行することができたと思います。しかし、私はそれが非常に効率的なパフォーマンス賢明ではないだろうと推測しています(各ファイルを2回通過)。
提案がありますか?
よろしく ダニエル
あなたの研究はここでsedとxmlについて教えてくれましたか?がんばろう。 – shellter
私はオリジナルの投稿で言ったように、SEDを使うかどうかは私の選択肢ではありません。 – Daniel
@ダニエル、それから誰かにその選択をすることを教えてください。一般的にsedやregexpsを使ってXMLを扱うのは、本当に悪い考えです。 XML固有のツールが存在する理由があります。 – svick