Creating a openstruct from xml

Hi just wondering if there is a easy way to turn an xml entity into a
object like of type OpenStruct where i can access everything like a
property?

It’s kind of like parsing xml, I already know about nokogiri, but I want
to work is a OpenStruct and not a DOM object, does that make sense? =P


Kind Regards,
Rajinder Y. | DevMentor.org | Do Good! ~ Share Freely

GNU/Linux: 2.6.35-22-generic
Kubuntu x86_64 10.10 | KDE 4.5.1
Ruby 1.9.2p0 | Rails 3.0.1

On Nov 28, 2010, at 4:52 PM, Rajinder Y. wrote:

Hi just wondering if there is a easy way to turn an xml entity into a object
like of type OpenStruct where i can access everything like a property?

It’s kind of like parsing xml, I already know about nokogiri, but I want to work
is a OpenStruct and not a DOM object, does that make sense? =P

Check out XmlSimple:

http://xml-simple.rubyforge.org/

You can pass the Hashes it returns to OpenStruct.

You may also want to see the second example in these slides for a much
more evil idea:

Unblocked

James Edward G. II

On Sun, Nov 28, 2010 at 6:09 PM, James Edward G. II
[email protected] wrote:

You can pass the Hashes it returns to OpenStruct.

You may also want to see the second example in these slides for a much more evil
idea:

Unblocked

James Edward G. II

James,

thanks, xml-simple does what I was looking for. Do you know if there
is a similar thing that can be done with nokogiri?


Kind Regards,
Rajinder Y. | DevMentor.org | Do Good! ~ Share Freely

GNU/Linux: 2.6.35-22-generic
Kubuntu x86_64 10.10 | KDE 4.5.1
Ruby 1.9.2p0 | Rails 3.0.1

On Nov 29, 2010, at 3:09 PM, Rajinder Y. wrote:

http://xml-simple.rubyforge.org/
James,

thanks, xml-simple does what I was looking for. Do you know if there
is a similar thing that can be done with nokogiri?

Not that I know of. You would need to write the code that makes the
translation.

James Edward G. II

On Mon, Nov 29, 2010 at 4:09 PM, Rajinder Y. [email protected]
wrote:

James,

thanks, xml-simple does what I was looking for. Do you know if there
is a similar thing that can be done with nokogiri?

You may want to check out Nokogiri’s “slop” mode (invented by the
inestimable John B.):

require 'rubygems'
require "nokogiri"

doc = Nokogiri::Slop <<-EOXML
<employees>
  <employee status="active">
    <fullname>Dean Martin</fullname>
  </employee>
  <employee status="inactive">
    <fullname>Jerry Lewis</fullname>
  </employee>
</employees>
EOXML

# navigate!
doc.employees.employee.last.fullname.content # => "Jerry Lewis"

# access node attributes!
doc.employees.employee.first["status"] # => "active"

# use some xpath!
doc.employees.employee("[@status='active']").fullname.content # => 

“Dean
Martin”
doc.employees.employee(:xpath =>
“@status=‘active’”).fullname.content #
=> “Dean Martin”

# use some css!
doc.employees.employee("[status='active']").fullname.content # => 

“Dean
Martin”
doc.employees.employee(:css => “[status=‘active’]”).fullname.content

=> “Dean Martin”