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?
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |