REXML parsing issue

Disclaimer: I’m new to programming and ruby.

I’ve used REXML to write both tree and stream parsers for simple xml
files but I can’t seem to return values for the xml below in either
case:

Sample Text

In this example I’d like to return the value (Sample Text)for the tag? So my question is how do I specify this attribute to
either a tree or stream parser?

Any help would be appreciated.

Thanks.

Charles Sword wrote:

either a tree or stream parser?
Use XPath:

title = REXML::XPath.first(doc, ‘/HIT/FIELD[ “title” = @name ]’).text

Look up my assert_xpath project for more XPath scenarios.

Thanks Phlip. That allowed me to get to the first instance in each
document but I’m struggling with populating an array with XPath.each?
Here’s the statement I’m using:

url=REXML::XPath.each(doc, ‘//HIT/FIELD[ “url” = @NAME ]’).text
{|element|}

I’m getting a ‘no code block given’ error but I thought this should pass
each element back to the array url?

Thanks in advance for any further help.

charles

Phlip wrote:

Charles Sword wrote:

either a tree or stream parser?
Use XPath:

title = REXML::XPath.first(doc, ‘/HIT/FIELD[ “title” = @name ]’).text

Look up my assert_xpath project for more XPath scenarios.

Disregard previous post. I was able to work through how to iterate
through the rest of the document.

Thanks again for your help.

Charles Sword wrote:

Thanks Phlip. That allowed me to get to the first instance in each
document but I’m struggling with populating an array with XPath.each?
Here’s the statement I’m using:

url=REXML::XPath.each(doc, ‘//HIT/FIELD[ “url” = @NAME ]’).text
{|element|}

I’m getting a ‘no code block given’ error but I thought this should pass
each element back to the array url?

Thanks in advance for any further help.

charles

Phlip wrote:

Charles Sword wrote:

either a tree or stream parser?
Use XPath:

title = REXML::XPath.first(doc, ‘/HIT/FIELD[ “title” = @name ]’).text

Look up my assert_xpath project for more XPath scenarios.