# REXML 3.1.6 has XPath problems

**URL:** <https://www.ruby-forum.com/t/rexml-3-1-6-has-xpath-problems/80707>\
**Category:** Ruby\
**Created:** [December 30, 2006, 5:00am UTC](https://www.ruby-forum.com/t/rexml-3-1-6-has-xpath-problems/80707 "2006-12-30T05:00:59Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kouhei\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/f4b2a3/32.png) [@Kouhei\_S](https://www.ruby-forum.com/u/Kouhei_S)\
**Post date:** [December 30, 2006, 5:00am UTC](https://www.ruby-forum.com/t/rexml-3-1-6-has-xpath-problems/80707/1 "2006-12-30T05:00:59Z")

</div>

Hi,

I found some bugs of REXML 3.1.6 related XPath.

The following code raises an exception:

require ‘rexml/document’

source = \<\<-XML  
  
 **TEXT1**  
   
   
   
**TEXT2**  
   
   
   
XML  
doc = REXML::Document.new(source)

predicate =  
“count(child::node()|following-sibling::node()|preceding-sibling::node())=0”  
p REXML::XPath.match(doc, “/descendant-or-self::node()[#{predicate}]”)

The exception is the following:  
/usr/lib/ruby/1.8/rexml/xpath\_parser.rb:335:in `expr': undefined method`children’ for nil:NilClass (NoMethodError)  
from /usr/lib/ruby/1.8/rexml/xpath\_parser.rb:334:in `each' from /usr/lib/ruby/1.8/rexml/xpath_parser.rb:334:in`expr’  
from /usr/lib/ruby/1.8/rexml/xpath\_parser.rb:422:in `expr' from /usr/lib/ruby/1.8/rexml/xpath_parser.rb:421:in`expr’  
from /usr/lib/ruby/1.8/rexml/xpath\_parser.rb:447:in `expr' from /usr/lib/ruby/1.8/rexml/xpath_parser.rb:445:in`collect’  
from /usr/lib/ruby/1.8/rexml/xpath\_parser.rb:445:in `expr' from /usr/lib/ruby/1.8/rexml/encoding.rb:47:in`each\_with\_index’  
… 14 levels…  
from /usr/lib/ruby/1.8/rexml/xpath\_parser.rb:125:in `match' from /usr/lib/ruby/1.8/rexml/xpath_parser.rb:56:in`parse’  
from /usr/lib/ruby/1.8/rexml/xpath.rb:63:in `match’  
from rexml-3.1.6-xpath-bug.rb:21

I’ll attach a patch of test case and fixing.

Thanks,

---

<div class="post-metadata">

**Author:** ![Kouhei\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/f4b2a3/32.png) [@Kouhei\_S](https://www.ruby-forum.com/u/Kouhei_S)\
**Post date:** [December 30, 2006, 6:56pm UTC](https://www.ruby-forum.com/t/rexml-3-1-6-has-xpath-problems/80707/2 "2006-12-30T18:56:38Z")

</div>

Kouhei S. wrote:

> 

What are the problems that you’ve seen?  
Like to know as I use REXML. Don’t remember the version I use right  
now, will check.

Thanks  
Vasudev

```auto
Vasudev Ram
Dancing Bison Enterprises
Software consulting and training
http://www.dancingbison.com
http://sourceforge.net/projects/xtopdf
http://jugad.livejournal.com

```

---

<div class="post-metadata">

**Author:** ![Kouhei\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/f4b2a3/32.png) [@Kouhei\_S](https://www.ruby-forum.com/u/Kouhei_S)\
**Post date:** [December 31, 2006, 4:01am UTC](https://www.ruby-forum.com/t/rexml-3-1-6-has-xpath-problems/80707/3 "2006-12-31T04:01:19Z")

</div>

Hi,

In [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
“Re: REXML 3.1.6 has XPath problems” on Sun, 31 Dec 2006 02:55:09  
+0900,  
“vasudevram” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Kouhei S. wrote:
> 
> > 
> 
> What are the problems that you’ve seen?  
> Like to know as I use REXML. Don’t remember the version I use right  
> now, will check.

My last mail was broken. You can see the (broken) mail in  
blade:  
[http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/231756](http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/231756)

Thanks,

---

<div class="post-metadata">

**Author:** ![Kouhei\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/f4b2a3/32.png) [@Kouhei\_S](https://www.ruby-forum.com/u/Kouhei_S)\
**Post date:** [January 2, 2007, 11:21am UTC](https://www.ruby-forum.com/t/rexml-3-1-6-has-xpath-problems/80707/4 "2007-01-02T11:21:12Z")

</div>

Kouhei S. wrote:

> –  
> kou

Thanks for the reply.  
Vasudev
