Как проанализировать XML-файл из командной строки (для GeekTool)?

Как проанализировать XML-файл из командной строки (для GeekTool)?

Я хотел бы найти команду терминала, которая может извлечь файл из http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=ИМЯ_ПОЛЬЗОВАТЕЛЯ&count=1и проанализируйте его, чтобы найти статус пользователя в Twitter. Статус находится внутри "statuses -> status -> text" в дереве.

Я посмотрел на libxml и xmllint. Думаю, я на правильном пути с xmllint, но не уверен. С xmllint я знаю, что могу сделать xmllint --shell file.xmlи затем cat //statuses/status/text. Но я бы предпочел иметь возможность делать какие-то команды типаКУРЛ|XMLLINT|СЭДкоторый загрузит файл, проанализирует его и вернет статус одним махом.

решение1

XML::Twig от Perl поставляется с...

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

(Конечно, естьСеть::Твиттерслишком.)

Связанный контент