コマンドラインから XML ファイルを解析するにはどうすればよいですか (GeekTool の場合)?

コマンドラインから XML ファイルを解析するにはどうすればよいですか (GeekTool の場合)?

ファイルを取得できるターミナルコマンドを見つけたいのですが http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=SOMEUSERNAME&count=1これを解析して、ユーザーの Twitter ステータスを見つけます。ステータスは、ツリーの「ステータス -> ステータス -> テキスト」の場所内にあります。

libxmlとxmllintを調べました。xmllintについては正しい方向に進んでいると思いますが、確信はありません。xmllintでは、xmllint --shell file.xmlと を実行できることはわかっていますcat //statuses/status/text。しかし、次のようなコマンドを実行できるとよいと思います。カール|XMLLINT|翻訳これにより、ファイルをダウンロードし、解析し、ステータスを一挙に返すことができます。

答え1

Perl の XML::Twig には以下が付属しています...

xml_grep --nowrap --text_only /statuses/status/text

XML::XPath では次のことができます:

perl -MXML::XPath -E 'my $xp = XML::XPath->new(ioref => \*STDIN); say $xp->getNodeText("/statuses/status/text");'

または

perl -MXML::XPath -E 'my $xp = XML::XPath->new(ioref => \*STDIN); for my $node ($xp->find("/statuses/status/text")->get_nodelist) { say $node->string_value; }'

(もちろん、ネット::ツイッターあまりにも。)

関連情報