in reply to String Manipulation Help Required

Don't try to write your own XML-parser/transformer. Use an existing one. Use XSLT, or, when you want to use Perl, use one of the many XML-parsing modules like XML::Parse or XML::Twig.

Paul

Replies are listed 'Best First'.
Re^2: String Manipulation Help Required
by holli (Abbot) on Jun 29, 2005 at 08:22 UTC
    Seconded. Perl is my tool of choice, but for this problem XSLT is the right way.

    Update: Added stylesheet
    <?xml version='1.0' ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" versi +on="1.0"> <xsl:output method="xml" indent="yes" /> <xsl:preserve-space elements="*" /> <xsl:template match="/businesses"> <xsl:copy> <xsl:for-each select="./entity"> <block> <xsl:attribute name="name"> <xsl:value-of select="./@name" /> </xsl:attribute> <xsl:attribute name="min"> <xsl:value-of select="./child::product/@min" /> </xsl:attribute> <xsl:attribute name="max"> <xsl:value-of select="./child::product/@max" /> </xsl:attribute> <xsl:for-each select = ".//description"> <xsl:if test="name(./parent::*)!='item'"> <xsl:copy> <xsl:value-of select = "." /> </xsl:copy> </xsl:if> </xsl:for-each> <xsl:for-each select = ".//item"> <xsl:copy-of select="." /> </xsl:for-each> </block> </xsl:for-each> </xsl:copy> </xsl:template> </xsl:stylesheet>


    holli, /regexed monk/
Re^2: String Manipulation Help Required
by blazar (Canon) on Jun 29, 2005 at 08:33 UTC