कई एक्सएमएल फाइलें डाउनलोड करें - रूबी, एक्सएमएल, नोकोगिरी

मैं एक्सएमएल को पार्स करने के लिए एक एप्लीकेशन लिख रहा हूं। मुझे एक एक्सएमएल फाइल से डेटा प्राप्त करना है, और फिर लूप में मुझे एक और एक्सएमएल फाइल खोलनी है।

कोड इस तरह दिखता है:

$doc = Nokogiri::XML(open("myxmladress"))
$doc.xpath("//job").each do |job|
if job.xpath("name").text.include?("joe")
$doc2 = Nokogiri::XML(open("myxmladress_for_joe"))
end
end

मुझे विश्वास है कि मेरे पास एकाधिक HTTP कनेक्शन खुले नहीं हो सकते हैं।

क्या मैं बस उपयोग करने के बजाय पूरी फाइल डाउनलोड कर सकता हूं

$doc Nokogiri::XML(open("myxmladress"))

या नोकोगिरी HTTP कनेक्शन को बंद करने का कोई तरीका है?

मैं इसे https द्वारा डाउनलोड कर रहा हूं।

मेरी त्रुटि:

in `open_http": 500 Server Error (OpenURI::HTTPError)
from /home/nagios/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/open-uri.rb:737:in `buffer_open"
from /home/nagios/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/open-uri.rb:212:in `block in open_loop"
from /home/nagios/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/open-uri.rb:210:in `catch"
from /home/nagios/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/open-uri.rb:210:in `open_loop"
from /home/nagios/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/open-uri.rb:151:in `open_uri"
from /home/nagios/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/open-uri.rb:717:in `open"
from /home/nagios/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/open-uri.rb:35:in `open"
from jenkins_auth.rb:97:in `block (2 levels) in combine_partial_results"
from /home/nagios/.rvm/gems/ruby-2.3.0/gems/nokogiri-1.6.7.2/lib/nokogiri/xml/node_set.rb:187:in `block in each"
from /home/nagios/.rvm/gems/ruby-2.3.0/gems/nokogiri-1.6.7.2/lib/nokogiri/xml/node_set.rb:186:in `upto"
from /home/nagios/.rvm/gems/ruby-2.3.0/gems/nokogiri-1.6.7.2/lib/nokogiri/xml/node_set.rb:186:in `each"
from jenkins_auth.rb:89:in `block in combine_partial_results"
from /home/nagios/.rvm/gems/ruby-2.3.0/gems/nokogiri-1.6.7.2/lib/nokogiri/xml/node_set.rb:187:in `block in each"
from /home/nagios/.rvm/gems/ruby-2.3.0/gems/nokogiri-1.6.7.2/lib/nokogiri/xml/node_set.rb:186:in `upto"
from /home/nagios/.rvm/gems/ruby-2.3.0/gems/nokogiri-1.6.7.2/lib/nokogiri/xml/node_set.rb:186:in `each"
from jenkins_auth.rb:86:in `combine_partial_results"
from jenkins_auth.rb:130:in `get_tests_for_job"
from jenkins_auth.rb:137:in `<main>"

उत्तर:

जवाब के लिए 0 № 1

आप एक यूआरएल से दस्तावेज़ लाने के लिए ओपनयूरी का उपयोग कर रहे हैं। मुझे पूरा यकीन है कि यह कोई खुला कनेक्शन नहीं छोड़ता है, लेकिन दस्तावेज़ को आईओ जैसे ऑब्जेक्ट में पढ़ता है, जैसे फ़ाइल की तरह।

आपकी समस्या यह प्रतीत होती है कि सर्वर में आंतरिक त्रुटि है।


संबंधित सवाल
सबसे लोकप्रिय