Ich möchte einen Terminalbefehl finden, der die Datei abrufen kann unter http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=SOMEUSERNAME&count=1und analysieren Sie es, um den Twitter-Status eines Benutzers zu finden. Der Status befindet sich im Baum an der Position „Status -> Status -> Text“.
Ich habe mir libxml und xmllint angesehen. Ich glaube, mit xmllint bin ich auf dem richtigen Weg, aber ich bin mir nicht sicher. Mit xmllint weiß ich, dass ich xmllint --shell file.xml
und dann ausführen könnte cat //statuses/status/text
. Aber ich würde es vorziehen, eine Art Befehl ausführen zu können wieCURL|XMLLINT|SEDDadurch wird die Datei heruntergeladen, analysiert und der Status auf einen Schlag zurückgegeben.
Antwort1
Perls XML::Twig wird geliefert mit...
xml_grep --nowrap --text_only /statuses/status/text
In XML::XPath können Sie Folgendes tun:
perl -MXML::XPath -E 'my $xp = XML::XPath->new(ioref => \*STDIN); say $xp->getNodeText("/statuses/status/text");'
oder
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; }'
(Natürlich gibt esNetz::Twitterzu.)