Re: getting XPath in REXML to dive deeper
- From: Gavin Kistner <phrogz@xxxxxxx>
- Date: Tue, 25 Sep 2007 04:34:55 +0900
Peter Bailey wrote:
I'm finally using REXML instead of plain vanilla Ruby to convert XML
data. I've learned a bit about XPath and how REXML can use it. I've got
a sample XML file whose root element is <registration>. Underneath that
element are a bunch of children elements. So, when I do the instruction
listed below, I get all of them. But, I don't get the last two elements
that, to me anyway, are children, too. The only thing different about
them is that they have children, too. Does anyone know the nomenclature
for getting ALL of the children of an element, not just those that are
immediate children. I guess I want grandkids, too!
XPath.each(doc, "//registration/*") { |element| puts element.text }
The term you are looking for is 'descendants'. In XPath, '/' is
shorthand for the 'child' axis. You want the 'descendant' axis, which
has the shorthand (that you already used) of '//'.
So "//registration//*" is "At any level, find an element named
'registration', and then find every element below any of them."
You possible want "registration//*" which is "every element in the
entire XML file at every level except for the root node", but that seems
rather pointless. (Why have a hierarchy in the XML if you're throwing
away the meaning?) Perhaps that will work for you, or perhaps you should
think further about exactly what elements you really want to traverse.
Hope that helps (oh, and this has nothing to do with Ruby, BTW :p)
Gavin
--
Posted via http://www.ruby-forum.com/.
.
- Follow-Ups:
- Re: getting XPath in REXML to dive deeper
- From: Peter Bailey
- Re: getting XPath in REXML to dive deeper
- References:
- getting XPath in REXML to dive deeper
- From: Peter Bailey
- getting XPath in REXML to dive deeper
- Prev by Date: Favorite idiom for "keep doing this until it returns nil/false"
- Next by Date: Re: Calling Exec() in Windows versus UNIX
- Previous by thread: getting XPath in REXML to dive deeper
- Next by thread: Re: getting XPath in REXML to dive deeper
- Index(es):
Relevant Pages
|