怎么才能得到解析的xml文档呢?

怎么才能得到解析的xml文档呢?

#!/usr/bin/ruby
# yahoo-web-search.rb
require 'open-uri'
require 'rexml/document'
require 'cgi'
BASE_URI = 'http://api.search.yahoo.co.jp/WebSearchService/V1/webSearch'
def print_page_titles(term)
 
 term = CGI::escape(term)
 xml = open(BASE_URI + "?appid=saikeina&query=#{term}").read
  document = REXML::Document.new(xml)
 
 
 REXML::XPath.each(document, '/ResultSet/Result/Title/[]') do |title|
  puts title
 end
end
(puts "Usage: #{$0} [search term]"; exit) if ARGV.empty?
print_page_titles(ARGV.join(' '))


我想看到这个程序解析的xml文档,怎么办?请高人指点。
xml = open(BASE_URI + "?appid=saikeina&query=#{term}").read
这一句里面的xml不就是抓取的页面
document = REXML::Document.new(xml)
这一句里面的document不就是解析出来的DOM对象树
嗯,知道了,谢谢。
还有些不明白,下面这句话中,等号后面那个式子是什么意思啊?
term = CGI::escape(term)

有没有比较好的ruby的书,介绍给我吧,要中文的,最好是在线的,或是电子的,因为我买书有点儿不方便,拜托!

CGI是一个底层库,作很多底层的事情,比如string的escape,unescape,整个rails的基础架构都是跑在CGI上面的
你的代码不知道哪里来得,不过如果是我,我就直接用比较高级一点的库来抓html
比如这个库"net/http"
http://stdlib.rubyonrails.org/li ... asses/Net/HTTP.html
这里的例子足够用了,且将CGI封装的很好,得到目标的返回信息后,用Hpricot解析一下response.body就行了

[ 本帖最后由 lgn21st 于 2008-3-12 12:22 编辑 ]
(puts "Usage: #{$0} [search term]"; exit) if ARGV.empty?
print_page_titles(ARGV.join(' '))

上面句子中“ARGV”是什么意思?我看在好多地方都会用到……
ARGV是外部命令行参数,是个数组