Nokogiri xpath method

Hi I am having a problem in nokogiri::HTML::Document.xpath method
for the site
http://services.ptcmysore.gov.in/RNetTracking/Track.aspx?RNetNo=RK633253644IN
Code
doc=
agent.get("http://services.ptcmysore.gov.in/RNetTracking/Track.aspx?RNetNo=RK633253644IN")

page1 = Nokogiri::HTML(open(doc.uri.to_s))

x = [page1.css("#GridView1 th")[0].text,page1.css("#GridView1
td")[0].text,page1.css("#GridView1 th")[1].text,page1.css("#GridView1
td")[1].text,page1.css("#GridView1 th")[2].text,page1.css("#GridView1
td")[2].text,page1.css("#GridView1 th")[3].text,page1.css("#GridView1
td")[3].text]
puts x
puts page1.css('#pnlDetail div #GridView2 tr th')[0].text#Error

india.rb:22:in `<main>': undefined method `text' for nil:NilClass
(NoMethodError
)

···

--
Posted via http://www.ruby-forum.com/.

adding myself to this trail from personal interest.

···

--
Posted via http://www.ruby-forum.com/.

Quoting gaurav shirodkar (lists@ruby-forum.com):

india.rb:22:in `<main>': undefined method `text' for nil:NilClass
(NoMethodError
)

What's your problem there? Check line 22 of your source code. It has
to be that one of the CSS tags you ask for does not exist in your
page. Instead of immediately asking for, let's say

page1.css("#GridView1 th")[0].text

you should first check if

page1.css("#GridView1 th")

is not null. Or maybe catch the exception? You should refactor...

Carlo

···

Subject: nokogiri xpath method
  Date: dom 03 feb 13 04:41:53 +0900

--
  * Se la Strada e la sua Virtu' non fossero state messe da parte,
* K * Carlo E. Prelz - fluido@fluido.as che bisogno ci sarebbe
  * di parlare tanto di amore e di rettitudine? (Chuang-Tzu)

Definitively: I can see serious violation of DRY. :slight_smile:

Cheers

robert

···

On Sun, Feb 3, 2013 at 9:48 AM, Carlo E. Prelz <fluido@fluido.as> wrote:

You should refactor...

--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/