Subject: Re: [xsl] XML transformation based on parameters From: David Carlisle <davidc@xxxxxxxxx> Date: Wed, 15 Apr 2009 10:25:18 +0100 |
> I don't know how to parse the xml file inside xslt and invoke the > transformation for each parameter... do you want a separate output for each parameter, or one output that has all the replacements combined? why have this <xsl:template match="*[local-name()='param']"> which is likely to be slower to execute and harder to read than <xsl:template match="param"> Assuming you want to do all the replacements together then have a file rep.xml that looks like <replace> <r p="id" v="newvalue"/> <r p="id2" v="newvalue2"/> <r p="id3" v="newvalue3"/> </replace> Then <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:param name="rep" select="document('rep.xml')"/> <xsl:template match="@* | node()"> <xsl:copy> <xsl:apply-templates select="@* | node()"/> </xsl:copy> </xsl:template> <xsl:template match="param"> <xsl:choose> <xsl:when test="@name = $rep/replace/@p"> <xsl:value-of select="$rep/replace[@p=current()/@name]/@v"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="."/> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet> ________________________________________________________________________ The Numerical Algorithms Group Ltd is a company registered in England and Wales with company number 1249803. The registered office is: Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom. This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. ________________________________________________________________________
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] XML transformation based , Michael Kay | Thread | Re: [xsl] XML transformation based , Emiliano Pecis |
RE: [xsl] XML transformation based , Michael Kay | Date | Re: [xsl] XML transformation based , Emiliano Pecis |
Month |