To parse XML-documents, I recommend the gem nokogiri Show archive.org snapshot .
xml = Nokogiri::XML("<list><item>foo</item><item>bar</item></list>")
parses an xml string. You can also call Nokogiri::HTML
to be more liberal about accepting invalid XML.xml / 'list item'
returns all matching nodes; list item
is used like a CSS selectorxml / './/list/item'
also returns all matching nodes, but .//list/item
is now an XPath selector
.
or /
xml % 'item'
returns the first matching nodenode.attribute('foo')
returns the attribute named foo
node.attribute('foo').value
returns its valuenode.content
returns the contentWhenever an XML document declares a namespace, like
<list xmlns="http://mylist.org'>
<item />
</list>
xml % './/list'
will not match any more (since there is no list
tag any more, just a {http://mylist.org}:list
tag).
You may use xml % './/xmlns:list'
instead.