Subject: Re: [xsl] How to test if a named attribute exists. From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Mon, 10 Mar 2003 17:08:52 +0000 |
Hi Imrran, > I would like to do a test to determine if a named attribute exists > in one or more of the child elements. > > If the attributes were elements, I can do this with a count of all > the named elements below the <parent> element. For example if I have > the named elements in a lookup table, I can use the following to > check for the existence of each of the elements using the element's > name from the lookup table as follows: > > <xsl:for-each select="$lookup-node/*"> > <xsl:variable name="ItemName" > select="string(name(.))"/> > <xsl:if > test="count($parent-node//*[name(.)=$ItemName]) > > 0"> > <th><xsl:value-of select="$ItemName"/></th> > </xsl:if> > </xsl:for-each> > > But I do not know how to do the same in the case of attributes. I'm not sure what $lookup-node or $parent-node are being set to, but I think that just putting '@' in front of the '*' so that you select attributes rather than elements might do the trick: <xsl:for-each select="$lookup-node/@*"> <xsl:variable name="ItemName" select="string(name(.))"/> <xsl:if test="count($parent-node//@*[name(.)=$ItemName]) > 0"> <th><xsl:value-of select="$ItemName"/></th> </xsl:if> </xsl:for-each> By the way, you can replace the "count(...) > 0" construct path with the expression that selects the node set: if there aren't any nodes in the node set then the test will return false, otherwise it will return true. So you could use: <xsl:for-each select="$lookup-node/@*"> <xsl:variable name="ItemName" select="string(name(.))"/> <xsl:if test="$parent-node//@*[name(.)=$ItemName]"> <th><xsl:value-of select="$ItemName"/></th> </xsl:if> </xsl:for-each> Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] How to test if a named attrib, Imrran Wahid | Thread | [xsl] How to filter nodes on attrib, Ankit Jain |
Re: [xsl] Get Position of Node in A, Ted Stresen-Reuter | Date | [xsl] How to filter nodes on attrib, Ankit Jain |
Month |