Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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>