我想找到一个可以提取文件的终端命令 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
。但是,我更希望能够执行类似这样的命令卷曲|XMLLINT|独立能源管理委员会这将一次性下载文件、解析文件并返回状态。
答案1
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; }'
(当然,网络::Twitter也。)