4

I'd like to find a Terminal command that can pull the file at http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=SOMEUSERNAME&count=1 and parse it to find a user's Twitter status. The status is inside the "statuses -> status -> text" location on the tree.

I've looked into libxml and xmllint. I think I'm on the right track with xmllint, but I'm not sure. With xmllint, I know I could do xmllint --shell file.xml and then cat //statuses/status/text. But, I'd prefer to be able to do some type of command like CURL | XMLLINT | SED that would download the file, parse it, and return the status in one fell swoop.

1
  • Take a look at this
    – soandos
    Aug 18, 2011 at 19:20

1 Answer 1

3

Perl's XML::Twig comes with...

xml_grep --nowrap --text_only /statuses/status/text

In XML::XPath you can do:

perl -MXML::XPath -E 'my $xp = XML::XPath->new(ioref => \*STDIN); say $xp->getNodeText("/statuses/status/text");'

or

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

(Of course, there's Net::Twitter too.)

1
  • 1
    I've found Net::Twitter::Lite easier to work with for simple stuff Aug 19, 2011 at 11:35

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .