BLOGTIMES
2014/03/24

xmllint で XML ファイルを整形する

  cli  xml 
このエントリーをはてなブックマークに追加

普段人が眺めることがない XML ファイルは容量削減のために改行やインデントが取り除かれていることがあります。

example.xml

<?xml version="1.0" encoding="utf-8"?> <root><items><item>いち</item><item>に</item><item>さん</item></items></root>

これを人が見やすい形にするためには、もちろんローカルに持ってきてブラウザで開く・・・という簡単な方法もありますが、ちょっと大きめの XML ファイルになってくるとブラウザが固まったりして何かと不便。そんなときはコマンドラインの xmllint に頼りましょう。 --format オプションをつけると、こんな感じでインデントされた出力結果を得ることができます。インデントされた形式だと、2つの XML を diff で比較したい場合にも便利なんですよね。

$ xmllint --format example.xml

<?xml version="1.0"?> <root> <items> <item>&#x3044;&#x3061;</item> <item>&#x306B;</item> <item>&#x3055;&#x3093;</item> </items> </root>

数値文字参照になってしまうのがイヤな場合は下記のように --encode で文字コードを指定することができます。

$ xmllint --format --encode utf-8 example.xml

<?xml version="1.0" encoding="utf-8"?> <root> <items> <item>いち</item> <item>に</item> <item>さん</item> </items> </root>

もちろん CP932 のような文字コードも指定できます。

$ xmllint --format --encode CP932 example.xml | nkf -Sw

<?xml version="1.0" encoding="CP932"?> <root> <items> <item>いち</item> <item>に</item> <item>さん</item> </items> </root>

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/6599
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン