Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

xmllintでCLIでもXMLをパースする

OSXUbuntuのような*NIX系には、xmllintというXMLをパースする便利なツールがついてます

実例

$ echo '<foo><bar/></foo>' | xmllint --xpath "//foo" -
<foo><bar/></foo>

XPath

Xpathに対応しているため、局面によっては便利につかえることもあります

$ xmllint --xpath '//a/@href' vietnam.html | tr ' ' '\n' | head

href="/wiki/Wikipedia:Protection_policy#semi"
href="#mw-head"
href="#p-search"
href="/wiki/File:Flag_of_Vietnam.svg"
href="/wiki/File:Coat_of_arms_of_Vietnam.svg"
href="/wiki/Flag_of_Vietnam"
href="/wiki/Emblem_of_Vietnam"
href="/wiki/Ti%E1%BA%BFn_Qu%C3%A2n_Ca"
href="#cite_note-1"

また、*NIX系ツールよろしく、パイプをつないで使うこともできます。

$ echo '<book><title>yeah</title><price>100</price></book>' | xmllint --xpath "/book/price" -
<price>100</price>