Subject: RE: [xsl] Find a specific element or fall back to element 1 From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Mon, 15 Jan 2007 23:05:46 -0000 |
Try select="(image[1] | image[@default='true'])[last()]" Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: John Horner [mailto:Horner.John@xxxxxxxxxx] > Sent: 15 January 2007 22:50 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Find a specific element or fall back to element 1 > > I have a gallery.xml file containing a number of images: > > <gallery> > <image> > <filename>1.jpg</filename> > </image> > <image> > <filename>2.jpg</filename> > </image> > <!-- etc --> > <image default="true"> > <!-- optional attribute applies to this element --> > <filename>10.jpg</filename> > </image> > </gallery> > > and my xslt has to do the following thing -- look for an > image marked with a "default" attribute, and if it's not > found, use the first image instead. So I'm looking for the > position number of the marked element, and if I can't find > it, using 1: > > <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> > > This seems a bit long and wasteful to me. Is there a better way? > > ============================================================== > ================ > The information contained in this email and any attachment is > confidential and > may contain legally privileged or copyright material. It is > intended only for > the use of the addressee(s). If you are not the intended > recipient of this email, you are not permitted to > disseminate, distribute or copy this email or any > attachments. If you have received this message in error, > please notify the sender immediately and delete this email > from your system. The ABC does not > represent or warrant that this transmission is secure or > virus free. Before > opening any attachment you should check for viruses. The > ABC's liability is limited to resupplying any email and > attachments > ============================================================== > ================
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Find a specific element or fa, John Horner | Thread | Re: [xsl] Find a specific element o, Abel Braaksma |
[xsl] Find a specific element or fa, John Horner | Date | Re: [xsl] Find a specific element o, Abel Braaksma |
Month |