명령줄(GeekTool의 경우)에서 XML 파일을 어떻게 구문 분석할 수 있나요?

명령줄(GeekTool의 경우)에서 XML 파일을 어떻게 구문 분석할 수 있나요?

파일을 가져올 수 있는 터미널 명령을 찾고 싶습니다. 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|SED파일을 다운로드하고 구문 분석한 다음 상태를 한 번에 반환합니다.

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

(물론 있어요.인터넷::트위터도.)

관련 정보