[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] how do you determine if a property exists?
Subject: RE: [xsl] how do you determine if a property exists? From: "Passin, Tom" <tpassin@xxxxxxxxxxxx> Date: Thu, 15 Apr 2004 11:49:23 -0400 |
> 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] how do you determine if a, Jarno.Elovirta | Thread | RE: [xsl] how do you determine if a, Wendell Piez |
Re: [xsl] Problem with rendering of, Mike Trotman | Date | RE: [xsl] text nodes, Michael Kay |
Month |
Keywords