ShellScriptとxmllintでxmlを解析

ShellScriptド素人がxmlの中身を取り出したかったので、色々調べた

xmllintとは

xmllintとはlibxml2を使用したツールで、XMLファイルに対して以下の機能を持ったのコマンドラインツールです。

このxmllintを使って、以下のxmlを解析して値&属性値を取り出す

sample.xml
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<top>
    <int name="hoge" value="327">100</int>
</top>


327を取り出す場合、以下のようにする

echo 'cat /top/int/@value' | xmllint --shell sample.xml | grep value= | sed 's/[^"]*"\([^"]*\)"[^"]*/\1/g'


100を取り出す場合、以下のようにする

echo 'cat /top/int' | xmllint --shell sample.xml | grep value= | sed 's/^.*<int.*>\(.*\)<\/int>.*$/\1/' 



参考にしたサイト
* ShellScriptでXMLの内容を取り出す | Opentone Labs.
* sedで「ダブルクォーテーションに囲まれた文字列」を抽出する方… - 人力検索はてな