2012-03-11 8 views
1

xmlファイルの先頭にコメントを追加したいと思います。任意のxmlファイルの最初の行は、常に<?xml version="1.0" encoding="UTF-8"?>のようにする必要があります。私のコメントはその直後でなければなりません。sed <?xml [something?>の後にコメントを追加する方法

sed '/<\?xml.*\?>/a \<!-- comment -->' test.xml 

は、このほとんど動作しますが、コメントも

<package xmlns="http://www.idpf.org/2007/opf" unique-identifier="uuid_id"> 

だから私のコマンドに誤りがあるように思わ

のような行の後に追加されます。

これは限り私が得るようです。手伝って頂けますか?

+1

これはあなたに不正な形式のXMLを与えるでしょう。それは大丈夫ですか? –

+0

いいえ、大丈夫でしょう。なぜそれは不正な形式ですか?ヒントありがとう! – speendo

+1

申し訳ありませんが、私は間違っています。コメントはOKです。 http://www.w3.org/TR/REC-xml/#sec-prolog-dtd無視してください。 :o( –

答えて

0

はそれを手に入れた:

sed '/<?xml .*?>/a \<!-- comment -->' test.xml 

(疑問符の前にバックスラッシュなし)

+1

代わりに/と同様に、xmlの後ろにスペースを追加して(そして他のバックスラッシュを削除して) –

1

あなたの基本的な前提:

任意のXMLファイルの最初の行としては、いつものようにする必要があり<?xml version="1.0" encoding="UTF-8"?>

は間違っています。 XML宣言はこの例とは異なる場合がありますが、完全に省略することもできます。そして改行が続く必要はありません。

sedのような非XML対応のツールを使ってXMLを操作することは、文字エンコーディングを考慮していないという理由だけでは悪い考えです。

関連する問題