Bash:
XMLの扱い方

方法:

BashでXMLを解析する方法です。ツールは?xmllintとxmlstarletです。XML要素をループ処理すること?間違いなしです。サンプル出力付きの例:

# xmlstarletがインストールされていると仮定
# インストールするには:apt-get install xmlstarlet

# XMLコンテンツを解析
cat <<EOF > sample.xml
<fruits>
  <fruit name="Apple"/>
  <fruit name="Banana"/>
</fruits>
EOF

# xmlstarletで名前を抽出
xmlstarlet sel -t -m "//fruit" -v "@name" -n sample.xml

# 出力は以下のようになります:
# Apple
# Banana

深く掘り下げる

90年代に入ると、XMLはSGMLに比べてよりシンプルな代替品として登場しましたが、HTMLよりも構造化されています。現在では、例えばJSON、YAMLなどの仲間がいます。しかし、XMLは特に設定やSOAPベースのWebサービスで、依然として活躍しています。

ツールの面では、xmllintはXMLの検証、xpathクエリに適しています。xmlstarletはXMLのさまざまなことに対応するスイスアーミーナイフです―クエリ、編集、検証、変換。Bashスクリプトでは、XMLタスクのためのスーパーヒーローです。

内部では、xmllintはlibxml2―XML Cパーサーを使用しています。それは速いですが、エラーメッセージは?解読しにくいです。そしてxmlstarlet?再帰テンプレートとEXSLTサポート。頭を悩ませるかもしれませんが、非常に強力です。

参照