On Sep 15, 2008, at 21:53 , Pedro Guevara wrote:
Well I thought to make a script but It's going to take me a lot of time. Because is a complex tree of data, so I supossed that some module of Catalyst would do it for me.
It's like
<libraries>
    <library name="Wolf">
          <book name="The King">
          <book name="The Queen">
    </library>
    <library name="Fox">
          <book name="The Castle">
          <book name="The Dragon">
    </library>
<libraries>

And it retrieves: like html

Libraries
<table>
   <tr>
        <td>Library :</td><td> Wolf</td>
        <td>Books:</td><td>      The King,    The Queen</td>
   </tr>
    <tr>
        <td>Library :</td><td> Fox</td>
        <td> Books:</td><td>      The Castle,    The Dragon</td>
    </tr>
</table>

Like everyone else I can only say that this has nothing to do with Catalyst. But what the heck. It's a trivial conversion, so simple that you don't even need XSLT (though you can still use it, I probably would). Old school approach:

use XML::LibXML;
my $doc = XML::LibXML->new->parse_file('libraries.xml');
print "<table>\n";
for my $lib ($doc->getElementsByTagNameNS(undef, 'library')) {
    print "  <tr>\n    <td>Library:</td><td>" .
          $lib->getAttributeNS(undef, 'name') .
          "</td>\n    <td>Books:</td><td>" .
join(', ', map { $_->getAttributeNS(undef, 'name') } $lib- >getElementsByTagNameNS(undef, 'book')) .
          "</td>\n  </tr>\n";
}
print "</table>\n";

I haven't tested the above, but if it doesn't work something a lot like it will.

--
Robin Berjon - http://berjon.com/
    Feel like hiring me? Go to http://robineko.com/






_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/

Reply via email to