|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: how do you determine if a property exists?
> From: David Buddrige [mailto:dbuddrige@xxxxxxxxx] > --- Jarno.Elovirta@xxxxxxxxx wrote: > > if you want to test if the attribute > > exists, then simply > > > > <xsl:when test="@Predecessors"> > > > > For some reason, this doesn't seem to work for me. I > am using saxon as my xslt processor. > > I have the following data: > > <?xml version="1.0" encoding="iso-8859-1"?> > <info> > <mytag duration="3 days" /> > <mytag /> > <mytag duration="6 hours" /> > <mytag duration="33 hours" /> > <mytag duration="" /> > <mytag duration="13 hours" /> > <mytag duration="5 days" /> > <mytag duration="" /> > <mytag duration="3 hours" /> > <mytag duration="23 hours" /> > </info> > > Here is one way to do it. There can be a million variations on the theme - <xsl:template match="/info"> <results> <xsl:for-each select='mytag'> <xsl:element name='myelement'> <xsl:choose> <xsl:when test='@duration != ""'> <xsl:copy-of select='@duration'/> </xsl:when> <xsl:otherwise> <xsl:attribute name='duration'>1</xsl:attribute> </xsl:otherwise> </xsl:choose> </xsl:element> </xsl:for-each> </results> </xsl:template> Notice the sense of test. This form picks up both a missing attribute and an empty string value. Cheers, Tom P
|
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
|

Cart








