以下の内容はhttps://takuya-1st.hatenablog.jp/entry/2014/08/24/031832より取得しました。


xmlを扱う xmllint コマンドで xpath

xpath 大好きっ娘 な takuya です。こんばんは。

xpath をもっと手軽に扱いたい

xpath を扱うには、libxm2やlibxsltをrubypython から使ってたんですが。phpxpath は微妙だし。

コマンドラインから使おうと思ってコマンド書き始めてたら、すでにコマンドが用意されてるんですね。

xmllint コマンド

xmllint コマンドというものがあります。引数に --xpath をつけるとxpathを使えます。

takuya@rena:~/Desktop$ echo "<a><b><c>cccc</c></b></a>" | xmllint  --xpath "//c/text()"  - 
cccc

linuxOSX は標準装備

osx の場合は、最初から入ってる

takuya@osx:~/Desktop$ which xmllint
/usr/bin/xmllint

debianなどLinuxでも最初から入ってる。

takuya@debian:~$ which xmllint
/usr/bin/xmllint

どの環境でも使えるならとっても便利ですね!。

HTML を使う

html を扱うときは --html をつける

xmllint  --html  --xpath "//input"  -

HTMLは厳格な仕様で書かれていることが少ないので、Warningが大量に出る。これはSTDERRに出るので無視できる。

xmllint  --html  --xpath "//input[@name='post_id']/@value" - 2>/dev/null

2014-09-05 修正

標準入力 STDIN から受けるときは、 - を末尾に置かないと動かなかったの

2023-05-23 修正

html を扱うときにフラグが必要になっていた。

みんな大好き!man ページ

xmllint はその名の通りlint なので、奥が深いプログラムですね。




以上の内容はhttps://takuya-1st.hatenablog.jp/entry/2014/08/24/031832より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14