Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > REXML::XPath results out of sort order ?

Reply
Thread Tools

REXML::XPath results out of sort order ?

 
 
Peter Fitzgibbons
Guest
Posts: n/a
 
      10-21-2005
------=_Part_19521_23874415.1129902870318
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Hello,
I need a reality check here,
given this xml : http://rafb.net/paste/results/iziEQI77.html

this test :
mi =3D XPath.match(@xml, '//HomesiteTree/Builder/Division/Workflow/Mileston=
e')
assert_equal '10', mi[0].elements['MsMilestoneId'].text

fails with :
2) Failure:
test_enrollmentMilestones(EnrollmentTest)
[C:/ruby/dev/BuildviewExtractor/test/functional/enrollment_test.rb:64]:
<"10"> expected but was
<"80">.


Is XPath.match returning results out of order ?

Am I missing something ?

Thanks for your advice.

Peter Fitzgibbons

------=_Part_19521_23874415.1129902870318--


 
Reply With Quote
 
 
 
 
daz
Guest
Posts: n/a
 
      10-21-2005

Peter Fitzgibbons wrote:
> Hello,
> I need a reality check here,
> given this xml : http://rafb.net/paste/results/iziEQI77.html
>
> this test :
> mi = XPath.match(@xml, '//HomesiteTree/Builder/Division/Workflow/Milestone')
> assert_equal '10', mi[0].elements['MsMilestoneId'].text
>
> fails with :
> 2) Failure:
> test_enrollmentMilestones(EnrollmentTest)
> [C:/ruby/dev/BuildviewExtractor/test/functional/enrollment_test.rb:64]:
> <"10"> expected but was <"80">.
>
>
> Is XPath.match returning results out of order ?
>
> Am I missing something ?
>


Sean has made lots of changes in the later version (see this post):
http://blade.nagaokaut.ac.jp/cgi-bin...?154714-156516


My quick test came up empty using this snippet on your data -
(maybe I got something wrong):

require 'rexml/document'
p REXML::Version #-> "3.1.3"
xml = REXML:ocument.new('D:\ruby\DfB\TEMP\clruby\___te st.xml')
mi = REXML::XPath.match(xml, '//HomesiteTree/Builder/Division/Workflow/Milestone')

p mi #-> []


> Thanks for your advice.
>
> Peter Fitzgibbons



Hope it's useful ...

daz



 
Reply With Quote
 
 
 
 
Peter Fitzgibbons
Guest
Posts: n/a
 
      10-21-2005
------=_Part_1159_30386941.1129911430342
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

On 10/21/05, daz <(E-Mail Removed)> wrote:
>
>
> Peter Fitzgibbons wrote:
> > Hello,
> > I need a reality check here,
> > given this xml : http://rafb.net/paste/results/iziEQI77.html
> >
> > this test :
> > mi =3D XPath.match(@xml,

> '//HomesiteTree/Builder/Division/Workflow/Milestone')
> > assert_equal '10', mi[0].elements['MsMilestoneId'].text
> >
> > fails with :
> > 2) Failure:
> > test_enrollmentMilestones(EnrollmentTest)
> > [C:/ruby/dev/BuildviewExtractor/test/functional/enrollment_test.rb:64]:
> > <"10"> expected but was <"80">.
> >
> >
> > Is XPath.match returning results out of order ?
> >
> > Am I missing something ?
> >

>
> Sean has made lots of changes in the later version (see this post):
>
> http://blade.nagaokaut.ac.jp/cgi-bin...k/154866?1547=

14-156516
>
>
> My quick test came up empty using this snippet on your data -
> (maybe I got something wrong):
>
> require 'rexml/document'
> p REXML::Version #-> "3.1.3"
> xml =3D REXML:ocument.new('D:\ruby\DfB\TEMP\clruby\___te st.xml')
> mi =3D REXML::XPath.match(xml,
> '//HomesiteTree/Builder/Division/Workflow/Milestone')
>
> p mi #-> []
>
>
> > Thanks for your advice.
> >
> > Peter Fitzgibbons

>
>
> Hope it's useful ...
>
> daz
>
>
>
>
> You have to File.open the file... Document.new doesn't know how to open

the stream.. only how to read it.

please try :

xml =3D REXML:ocument.new(File.open('D:\ruby\DfB\TEMP\cl ruby\__
>
> _test.xml') )


------=_Part_1159_30386941.1129911430342--


 
Reply With Quote
 
daz
Guest
Posts: n/a
 
      10-21-2005

Peter Fitzgibbons wrote:
>
> You have to File.open the file... Document.new doesn't know how to open
>the stream.. only how to read it.
>
> please try :
>
> xml = REXML:ocument.new(File.open('D:\ruby\DfB\TEMP\cl ruby\___test.xml') )



Gosh, that makes *such* a difference ) <blush>

I would have known that if I was doing it myself.


Version 3.1.3 gives the correct result:

p mi[0].elements['MsMilestoneId'].text #-> "10"


daz



 
Reply With Quote
 
Peter Fitzgibbons
Guest
Posts: n/a
 
      10-21-2005
------=_Part_3059_26451485.1129919876261
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

On 10/21/05, daz <(E-Mail Removed)> wrote:
>
>
> Peter Fitzgibbons wrote:
> >
> > You have to File.open the file... Document.new doesn't know how to open
> >the stream.. only how to read it.
> >
> > please try :
> >
> > xml =3D REXML:ocument.new(File.open('D:\ruby\DfB\TEMP\cl ruby\___test.=

xml')
> )
>
>
> Gosh, that makes *such* a difference ) <blush>
>
> I would have known that if I was doing it myself.
>
>
> Version 3.1.3 gives the correct result:
>
> p mi[0].elements['MsMilestoneId'].text #-> "10"
>
>
> daz
>
>
>
>
> How do I find my current REXML version ? I'm using the default lib

installed with one-click 1.8.15

------=_Part_3059_26451485.1129919876261--


 
Reply With Quote
 
Peter Fitzgibbons
Guest
Posts: n/a
 
      10-21-2005
------=_Part_3099_19942736.1129919978851
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

On 10/21/05, Peter Fitzgibbons <(E-Mail Removed)> wrote:
>
>
>
> On 10/21/05, daz <(E-Mail Removed)> wrote:
> >
> >
> > Peter Fitzgibbons wrote:
> > >
> > > You have to File.open the file... Document.new doesn't know how to

> > open
> > >the stream.. only how to read it.
> > >
> > > please try :
> > >
> > > xml =3D REXML:ocument.new (File.open('D:\ruby\DfB\TEMP\clruby\___te=

st.xml')
> > )
> >
> >
> > Gosh, that makes *such* a difference ) <blush>
> >
> > I would have known that if I was doing it myself.
> >
> >
> > Version 3.1.3 gives the correct result:
> >
> > p mi[0].elements['MsMilestoneId'].text #-> "10"
> >
> >
> > daz
> >
> >
> >
> >
> > How do I find my current REXML version ? I'm using the default lib

> installed with one-click 1.8.15
>
> Oh, yes, I'm using 3.1.3.

So what's different then ?

------=_Part_3099_19942736.1129919978851--


 
Reply With Quote
 
daz
Guest
Posts: n/a
 
      10-22-2005

Peter Fitzgibbons wrote:
> Peter Fitzgibbons wrote:
> >
> > How do I find my current REXML version ? I'm using the default lib
> >installed with one-click 1.8.15

>
> Oh, yes, I'm using 3.1.3.



There's a contradiction, somewhere (?)

"One-click" 1.8.2-15 Stable Release (April 20, 2005) has REXML 3.1.2.1
in Ruby 1.8.2 final (2004-12-25).


require 'rexml/document'
puts 'ruby %s (%s) [%s]' % [RUBY_VERSION, RUBY_RELEASE_DATE, RUBY_PLATFORM]
puts REXML::Version

xml = REXML:ocument.new(File.read('D:\ruby\DfB\TEMP\cl ruby\___test.xml'))
mi = REXML::XPath.match(xml, '//HomesiteTree/Builder/Division/Workflow/Milestone')

mi.each { |e| print ' ', e.elements['MsMilestoneId'].text }; puts

#------------------------------------------

#-> ruby 1.8.2 (2004-12-25) [i386-mswin32]
#-> 3.1.2.1
#-> 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 270 280 290 10 20

#------------------------------------------

#-> ruby 1.8.3 (2005-07-22) [i386-mswin32]
#-> 3.1.3
#-> 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 270 280 290

#------------------------------------------


> So what's different then ?


I *know* I'm using 3.1.3

It fixes several bugs relating to XPath result ordering.
The REXML tracker is down as I write, otherwise I'd give a link.

If you're sure you're getting incorrect results using 3.1.3,
please submit a bug report to:
http://www.germane-software.com/projects/rexml/

As you can see from my tests - the 2nd result array is in order.

The disorder of the 1st result seems to be different from yours
(first element of <80>) but maybe there's a random factor
associated with the bug in 3.1.2.1 (?)


daz



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[B,IX] = sort(A,...) - Order for sort()-function =?iso-8859-1?Q?=22Orlando_D=F6hring=22?= Python 0 05-29-2007 03:31 PM
Re: When will Thunderbird support sort in place (in context sort)? Ron Natalie Firefox 0 02-02-2006 04:38 AM
xsl:sort lang="es" modern vs. tradidional Spanish sort order nobody XML 0 06-01-2004 06:25 AM
How would I use qsort to sort a struct with a char* member and a long member - I want to sort in order of the long member Angus Comber C Programming 7 02-05-2004 06:41 PM
Ado sort error-Ado Sort -Relate, Compute By, or Sort operations cannot be done on column(s) whose key length is unknown or exceeds 10 KB. Navin ASP General 1 09-09-2003 07:16 AM



Advertisments