andrewheiss has asked for the wisdom of the Perl Monks concerning the following question:
I'm using XPath to parse an XML file of blog posts and comments. Here's an example of the file structure:
<entry> <title>Title of the post</title> <content>Content of the post</content> <category term="blog"/> <category term="label"/> <category term="another label"/> <category term="blah"/> ... </entry>
The first category element indicates the type of entry--whether or not the entry is a blog post or a comment. Any subsequent category elements indicate the blog post tags.
I can easily get the first instance of category like so:
foreach my $entry (reverse($xc->findnodes('//post:entry'))) { my $type = $xc->findvalue('./post:category[1]/@term', $entry); ... }
And I can get the subsequent values by referencing post:category[2]/@term, or any other number.
I can even get all subsequent values using this xpath:
my $category = $xc->findvalue('./post:category[position()>1]/@term', $entry);Unfortunately, though, when I use position()>1 it sticks all the values in one variable, like "labelanother labelblah". What's the best way to keep the values separate? when retrieving them with xpath?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Loop through multiple elements with same name in XPath
by ikegami (Patriarch) on May 30, 2009 at 16:58 UTC | |
|
Re: Loop through multiple elements with same name in XPath
by mirod (Canon) on May 30, 2009 at 09:01 UTC | |
|
Re: Loop through multiple elements with same name in XPath
by Anonymous Monk on May 30, 2009 at 09:11 UTC | |
|
Re: Loop through multiple elements with same name in XPath
by Jenda (Abbot) on May 30, 2009 at 20:51 UTC |