現在、PivotalTracker API に GET リクエストを発行して、特定のプロジェクトのすべてのバグをバグの重大度別に取得しています。私が本当に必要としているのはバグの数 (つまり、10 個の重大なバグ) だけですが、現在、各バグのすべての生データを XML 形式で取得しています。XML データの上部にはバグ カウントがありますが、そのカウントに到達するには大量のデータをスクロールする必要があります。
この問題を解決するために、XML を解析してバグ カウントのみを表示しようとしていますが、その方法がわかりません。Nokogiri と REXML を試してみましたが、HTTP GET 要求からの XML ではなく、実際の XML ファイルしか解析できないようです。
これが私のコードです(セキュリティ上の理由から、アクセストークンは * に置き換えられています):
require 'net/http'
require 'rexml/document'
prompt = '> '
puts "What is the id of the Project you want to get data from?"
print prompt
project_id = STDIN.gets.chomp()
puts "What type of bugs do you want to get?"
print prompt
type = STDIN.gets.chomp()
def bug(project_id, type)
net = Net::HTTP.new("www.pivotaltracker.com")
request = Net::HTTP::Get.new("/services/v3/projects/#{project_id}/stories?filter=label%3Aqa-#{type}")
request.add_field("X-TrackerToken", "*******************")
net.read_timeout = 10
net.open_timeout = 10
response = net.start do |http|
http.request(request)
end
puts response.code
print response.read_body
end
bug(project_id, type)
私が言ったように、GET リクエストはバグ カウントと個々のバグのすべての生データをターミナル ウィンドウに正常に出力していますが、バグ カウントだけを出力したいのです。