Subject: Re: [xsl] Simplify HAIRY xslt From: Marcus Andersson <marcus@xxxxxxxxxx> Date: Fri, 14 May 2004 20:21:13 +0200 |
Yup, it does. It's a bit more readable now.
You can isolate this logic further:
<xsl:template name="rule"> <xsl:param name="uri"/> <xsl:variable name="prefix" select="../@prefix"/> <xsl:variable name="uid-assign">
<res:choose> <res:when test="*[name() = '{$prefix}:rule']"> <xsl:text>{*[name() = '</xsl:text> <xsl:value-of select="$prefix"/> <xsl:text>:rule']/@uid}</xsl:text> </res:when> <res:otherwise> <xsl:text>{generate-id()}_</xsl:text> <xsl:value-of select="$prefix"/> </res:otherwise> </res:choose>
</xsl:variable>
<xsl:element name="{$prefix}:rule" namespace="{$uri}">
<xsl:if test="string(@display)">
<xsl:attribute name="displayValue">{<xsl:value-of select="@display"/>}</xsl:attribute>
</xsl:if>
<xsl:attribute name="uid">
<xsl:value-of select="$uid-assign"/>
</xsl:attribute>
<xsl:attribute name="xpath">{$newXpath}</xsl:attribute>
<xsl:attribute name="type">{$type}</xsl:attribute>
<xsl:copy-of select="@*|node()"/>
</xsl:element>
</xsl:template>
which can be handy for parameterization, shortening the syntax, etc. (You will want to straighten up the indents in that code.)
I hope that helps. Wendell
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Simplify HAIRY xslt, Wendell Piez | Thread | [xsl] how to figure out what level , Morten Andersen |
Re: [xsl] [xsl fo] xsl to a minimum, J.Pietschmann | Date | RE: [xsl] error using number(), Michael Kay |
Month |