¿Cómo puedo analizar un archivo XML desde la línea de comando (para GeekTool)?

¿Cómo puedo analizar un archivo XML desde la línea de comando (para GeekTool)?

Me gustaría encontrar un comando de Terminal que pueda extraer el archivo en http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=SOMEUSERNAME&count=1y analizarlo para encontrar el estado de Twitter de un usuario. El estado está dentro de la ubicación "estados -> estado -> texto" en el árbol.

He investigado libxml y xmllint. Creo que estoy en el camino correcto con xmllint, pero no estoy seguro. Con xmllint, sé que podría hacerlo xmllint --shell file.xmly luego cat //statuses/status/text. Pero preferiría poder hacer algún tipo de comando comoRIZO|XMLLINT|SEDeso descargaría el archivo, lo analizaría y devolvería el estado de una sola vez.

Respuesta1

XML de Perl::Twig viene con...

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

En XML::XPath puedes hacer:

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

o

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

(Por supuesto, hayRed::Twittertambién.)

información relacionada