# Hpricot and xpath

**URL:** <https://rubytalk.org/t/hpricot-and-xpath/48295>\
**Category:** ruby-talk\
**Created:** [13 August 2008 01:45 UTC](https://rubytalk.org/t/hpricot-and-xpath/48295 "2008-08-13T01:45:06Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Guest2](https://avatars.discourse-cdn.com/v4/letter/g/439d5e/32.png) [@Guest2](https://rubytalk.org/u/Guest2)\
**Post date:** [13 August 2008 01:45 UTC](https://rubytalk.org/t/hpricot-and-xpath/48295/1 "2008-08-13T01:45:06Z")

</div>

> tag1.rb:6: undefined method `xpath' for nil:NilClass (NoMethodError)  
> Do you see the nil in that line? Where is the nil coming from? Is the method  
> before the .xpath, on line 6, possibly returning a nil and not an Elem?

> After pondering that, switch '#header' to '.header'!

Hi Phlip,  
Thank you for your dot!!!  
I follow your suggestion and change to '.header' or ".header" instead of "#header" and and it works. Ruby returns the tag's path like this: /tag1/tag2/div. But I see nowhere in the document about using "." and "#" in xpath() or css\_path(). Do I miss something in the docucment?  
Li

> **···**
>
> Subject: Re: Hpricot and xpath

---

<div class="post-metadata">

**Author:** ![Phlip1](https://avatars.discourse-cdn.com/v4/letter/p/df788c/32.png) [@Phlip1](https://rubytalk.org/u/Phlip1)\
**Post date:** [13 August 2008 03:42 UTC](https://rubytalk.org/t/hpricot-and-xpath/48295/2 "2008-08-13T03:42:26Z")

</div>

chen li wrote:

> I follow your suggestion and change to '.header' or ".header" instead of "#header" and and it works. Ruby returns the tag's path like this: /tag1/tag2/div. But I see nowhere in the document about using "." and "#" in xpath() or css\_path(). Do I miss something in the docucment?

That's just the thing. I studied the crap out of HTML, XHTML, and light CSS, and never learned until encountering assert\_select that CSS has its own query notation. Others with different career paths have learned nothing but - and they all assume you know the same things.

Hpricot can handle \_light\_ XPath, and can handle various CSS Selector notations. The documenters have all assumed that someone else taught you how they work. So google for "CSS Selector", without x-ref'ing Hpricot!

> **···**
>
> --  
> &nbsp;&nbsp;&nbsp;Phlip
