Como posso analisar um arquivo XML na linha de comando (para GeekTool)?

Como posso analisar um arquivo XML na linha de comando (para GeekTool)?

Gostaria de encontrar um comando do Terminal que possa extrair o arquivo em http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=SOMEUSERNAME&count=1e analise-o para encontrar o status de um usuário no Twitter. O status está dentro do local "status -> status -> text" na árvore.

Eu olhei para libxml e xmllint. Acho que estou no caminho certo com o xmllint, mas não tenho certeza. Com o xmllint, eu sei que poderia fazer xmllint --shell file.xmle então cat //statuses/status/text. Mas eu preferiria poder executar algum tipo de comando comoONDULAÇÃO|XMLLINT|SEDisso baixaria o arquivo, analisaria e retornaria o status de uma só vez.

Responder1

O XML::Twig do Perl vem com...

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

Em XML::XPath você pode fazer:

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

ou

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; }'

(Claro, háRede::Twittertambém.)

informação relacionada