如何从命令行解析XML文件(对于GeekTool)?


4

我想找到一个可以在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。但是,我更喜欢能够做一些像CURL | 这样的命令 XMLLINT | SED将下载文件,解析它,并一举返回状态。


Answers:


3

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

(当然,也有Net :: Twitter。)


1
我发现Net :: Twitter :: Lite更容易使用简单的东西
查尔斯布里奇2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.