Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > REXML, XPath and Namespace

Reply
Thread Tools

REXML, XPath and Namespace

 
 
hinsen
Guest
Posts: n/a
 
      06-16-2007
Hi.

I want to parse an xml file using REXML::XPath. I can easily navigate
through the xml-tree with methods like 'XPath.match(xml, "child::*")'
and. But i can't
access nodes with the structure 'prefix:name'. Even this call is not
working (it doesn't hit any node):

sub_tags = REXML::XPath.match(xml, "/rss/channel/item/dc:date", {
"dc"=>"http://purl.org/dc/elements/1.1/" })

Do you know what i'am doing wrong?
Thanks

<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlnsCal="urn:ietfaramsml:nscal">
<channel>
<title>Zvents search for events matching within 60 miles of
6</title>
<link>http://www.zvents.com/search?...</link>
<ttl>60</ttl>
<description>Zvents search for even Germany
returesults.</description>
<stream_count>2</stream_count>
<item>
<title>MIR DETSTWA</title>
<description>International Exhibition of Goods for
Childg</description>
<summary></summary>
<phone></phone>
<guid>http://www.zvents.com/events/show/896719-MIR-DETSTWA</guid>
<link>http://www.zvents.com/events/show/896719-MIR-DETSTWA</link>
<dc:creator>mBLAST</dc:creator>
<id>896719</id>
<parent_id></parent_id>
<series_count></series_count>
<geo:lat>50.12</geo:lat>
<geo:long>8.68</geo:long>
<pubDate>Wed, 30 May 2007 07:11:46 +0000</pubDate>
<dc:date>2007-05-30T07:11:46+0000</dc:date>
<xCal:dtstart>2007-10-03 00:00:00 +0000</xCal:dtstart>
<xCal:dtend>2007-10-07 00:00:00 +0000</xCal:dtend>
...

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

 
Reply With Quote
 
 
 
 
Keith Fahlgren
Guest
Posts: n/a
 
      06-21-2007
On 6/16/07, hinsen <(E-Mail Removed)> wrote:
> Even this call is not
> working (it doesn't hit any node):


This seemed to work for me:
require 'rexml/document'
=> true

INPUT = <<INPUT_XML
<rss xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlnsCal="urn:ietfaramsml:nscal">
<channel>
<title>Zvents search for events matching within 60 miles of 6</title>
<item>
<pubDate>Wed, 30 May 2007 07:11:46 +0000</pubDate>
<dc:date>2007-05-30T07:11:46+0000</dc:date>
</item>
</channel>
</rss>
INPUT_XML
=> "<rss xmlns:geo=\"http://www.w3.org/2003/01/geo/wgs84_pos#\"
version=\"2.0\"\nxmlns:dc=\"http://purl.org/dc/elements/1.1/\"\nxmlnsCal=\"urn:ietfaramsml:nscal\"> \n
<channel>\n <title>Zvents search for events matching within 60
miles of 6</title>\n <item>\n <pubDate>Wed, 30 May 2007
07:11:46 +0000</pubDate>\n
<dc:date>2007-05-30T07:11:46+0000</dc:date>\n </item> \n
</channel> \n</rss> \n"

xml = REXML:ocument.new(INPUT)
=> <UNDEFINED> ... </>

a = REXML::XPath.match(xml, "/rss/channel/item/dc:date", {
"dc"=>"http://purl.org/dc/elements/1.1/" })
=> [<dc:date> ... </>]

a.to_s
=> "<dc:date>2007-05-30T07:11:46+0000</dc:date>"

 
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
"Memory leak" in javax.xml.xpath.XPath Marvin_123456 Java 4 07-29-2005 03:49 PM
XPath's name, local-name, and namespace-uri functions Marc A. Criley XML 0 12-30-2004 01:10 AM
Are there any XPath parsers that generate XPath trees? goog XML 0 01-14-2004 01:47 PM
XPath that does not include other XPath Anna XML 0 07-31-2003 07:55 AM
Problem selecting a node with XPATH if attribute value contains backslashes - how to force XPATH string to be treated as literal? Alastair Cameron XML 1 07-08-2003 07:24 PM



Advertisments