xmllint学習 #1 サーバーコマンドでxmlをパースできるxmllintが便利っぽい

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

最近やたらとXMLデータを扱う事が多い。
 

いいかげんJSONベースで楽にさせてくれと思っているのに、大企業や政府はXMLが大好きらしい。
 

もちろん、機能が豊富なのは分かるが、namespaceとか、エンジニアからしてみるとめんどくさくて仕方がないシロモノ。
 

そして、xmlはこれまでphpでわざわざパースしていたんですが、「xmllint」っていうサーバーコマンドでパースできるっているモノがあるらしいじゃないですか・・・
 

ググればすぐに目につくのに、なんでこれまで気が付かなかったんだろう!!!
 

そんなワケで、xmllintを使いこなせるようになりたいので、コマンドに使い慣れてみたいと思い、勉強がてら記事を書いておこうと思います。

xmllintのインストール確認

事前にインストールされているか確認してみる。
 

 

どうやらかなり老舗のツールのようなので、ほぼインストール操作をしなくても、Linuxサーバーには入っているぐらいの標準ツールみたいですが、dockerのミニマムインストールされた環境には入っていない事が多いので、下記の方法でインストールすることができた。
 

 

インストール名ではなく、ライブラリの中に入っているツールなんですね。
 

これはもはや、windowsOSのIEと同じような位置づけと同じじゃないかと思ってしまった・・・

サンプルXMLを使って簡単パース

 

# 内部データの構造一覧表示
 

# hageタグを取得を取得
 

 

# “aaa”属性をもったタグを取得
 

 

参考

xpathの使い方をまとめてくれています。
 

svgもパースできる

フリー素材などでお手軽にダウンロードできて、WEBページで便利に活用できるSVGは中身はXMLデータです。
 

中身も簡単に表示できて、パースして内容変更することも可能です。
 

 

ただし、SVGの仕様についてはここでは解説しません・・・
 

やっかいなnamespace

他にもOffice系ファイルも中身は”zip > xml”なので、xmllintでコントロールすることが可能です。
 

・・・が・・・・
 

ゴリゴリのnamespace仕様になっていて、パースするのが非常に困難です。
 

次回はこの辺のパースの仕方を学習してみたいと思います。

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です