[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Find a specific element or fall back to element 1
John Horner wrote:
<xsl:variable name="gallery-xml-file" select="document($gallery-xml-path)"/> <xsl:variable name="test-position"> <xsl:for-each select="$gallery-xml-file//image"> <xsl:if test="@default='true'"> <xsl:value-of select="position()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="display-position"> <xsl:choose> <xsl:when test="$test-position = ''">1</xsl:when> <xsl:otherwise> <xsl:value-of select="$test-position"/> </xsl:otherwise> </xsl:choose> </xsl:variable> There are many ways that lead to Rome. It can be done very short in XSLT 2, but I guess you are using XSLT 1. Here's one way to tackle it, using only template matching, which will output the number "1" is there is no image with @default, and will print the position of the one with @default when there is one. <xsl:template match="/"> pos2: <xsl:apply-templates select="$gallery-xml-file/gallery/image" /> </xsl:template> <xsl:template match="image[@default] | image[not(../image/@default)][1]"> <xsl:value-of select="position()" /> </xsl:template> <xsl:template match="image" />
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|