Como posso analisar um arquivo XML a partir da linha de comando (para GeekTool)?

3

Gostaria de encontrar um comando do Terminal que possa extrair o arquivo em link e analise-o para encontrar o status do Twitter de um usuário. O status está dentro do status "status - > status - > texto" na árvore.

Eu olhei em libxml e xmllint. Acho que estou no caminho certo com o xmllint, mas não tenho certeza. Com xmllint, eu sei que eu poderia fazer xmllint --shell file.xml e, em seguida, cat //statuses/status/text . Mas, eu prefiro poder fazer algum tipo de comando como CURL | XMLLINT | SED que baixaria o arquivo, analisaria e retornaria o status de uma só vez.

    
por stalepretzel 18.08.2011 / 21:13

1 resposta

2

XML de Perl :: Twig 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á Net :: Twitter também .)

    
por 18.08.2011 / 21:29