Subject: RE: [xsl] determining whether an XPATH points to an element or attribute From: Edward.Middleton@xxxxxxxxxxx Date: Thu, 24 Jan 2002 11:48:57 +0900 |
> <xsl:template match="//tagname1[fads and @fads]/tagname2"> > <xsl:choose> > <xsl:when test=" self::*"><!-- if it points to element --> > <TagOperation> > </xsl:when> > <xsl:otherwise><!-- if it points to attribute--> > <AttributeOperation> > </xsl:otherwise> > </xsl:choose> > </xsl:template> >With this template only elements with name "tagname2" (and tagname1 as >parent, which ...) will be processed. So you don't need to test on element >or attribute. The match path is an arbitrary XPATH I obtain from another file. I have to test whether it is an attribute because I didn't know what <Path>//tagname1[@fads]</Path> points to when I generated the above template. If I could check what it pointed to using XSLT It wouldn't be a problem This is what I use to generate the above template from the Path element. <xsl:namespace-alias stylesheet-prefix="pre" result-prefix="xsl"/> <xsl:template match="Path"> <pre:template> <xsl:attribute name="match"><xsl:value-of select="current()"/></xsl:attribute> <pre:choose> <!-- is element case --> <pre:when test="self::*"> <elementCase/> </pre:when> <!-- is attribute case --> <pre:otherwise> <attributeCase/> </pre:otherwise> </pre:choose> </pre:template> </xsl:template> which produces. <xsl:template match="//tagname1[@fads]"> <xsl:choose> <!-- is element case --> <xsl:when test="self::*"> <elementCase/> </xsl:when> <!-- is attribute case --> <xsl:otherwise> <attributeCase/> </xsl:otherwise> </xsl:choose> </xsl:template> Edward XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] determining whether an XP, Joerg Heinicke | Thread | [xsl] org.apache.xml.utils.WrappedR, Jakub . Valenta |
[xsl] skipping page numbers in fo, Lance Frohman | Date | RE: [xsl] xslt transform sql into h, Kovach, Dave |
Month |