Others have suggested using XSLT but I thought it might be useful to actually show you how - here is the stylesheet:

<?xml version="1.0"?> <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml" /> <xsl:template match="/"> <businesses> <xsl:apply-templates /> </businesses> </xsl:template> <xsl:template match="entity"> <block> <xsl:attribute name="name"> <xsl:value-of select="@name" /> </xsl:attribute> <xsl:attribute name="min"> <xsl:value-of select="product/@min" /> </xsl:attribute> <xsl:attribute name="max"> <xsl:value-of select="product/@max" /> </xsl:attribute> <xsl:copy-of select="description" /> <xsl:copy-of select="product/*" /> </block> </xsl:template> <xsl:template match="item"> <xsl:copy-of select="." /> </xsl:template> </xsl:transform>
And of course code in Perl, first using XML::XSLT:
use XML::XSLT; + my $xslt = XML::XSLT->new ('tr.xslt', warnings => 1); + $xslt->transform ('source.xml'); print $xslt->toString; + $xslt->dispose();
Secondly using XML::LibXSLT:
use XML::LibXSLT; use XML::LibXML; + my $parser = XML::LibXML->new(); my $xslt = XML::LibXSLT->new(); + my $source = $parser->parse_file('source.xml'); my $style_doc = $parser->parse_file('tr.xslt'); + my $stylesheet = $xslt->parse_stylesheet($style_doc); + my $results = $stylesheet->transform($source); + print $stylesheet->output_string($results);

/J\


In reply to Re: String Manipulation Help Required by gellyfish
in thread String Manipulation Help Required by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.