Subject: Re: [xsl] Keys From: Dimtre Novatchev <dnovatchev@xxxxxxxxx> Date: Thu, 9 Sep 2004 21:21:49 +1000 |
On Wed, 8 Sep 2004 22:43:07 -0700, Karl J. Stubsjoen <karl@xxxxxxxxxxxxxxxxxxxx> wrote: > How do you manage this sort of key: > <xsl:key name="attType" > match="/root/*/xml/s:Schema/s:ElementType/s:AttributeType" > use="/root/*[@name()]"/> > > I am trying to create a "USE" on a specific node who's name can very so: > > root/class > root/house > root/bird > > This select works great: > <xsl:for-each > select="/root/*[name()=$TABLE_NAME]/xml/s:Schema/s:ElementType/s:AttributeTy > pe"> > > Where $TABLE_NAME is a variable. This can be done in a straight way and no variable reference is needed in the xsl:key instruction. Use: <xsl:key name="kAtt" match="attributeType" use="name(../../../..)"/> and key('kAtt', '$vSomeName') For example (namespaces from your example stripped intentionally): This transformation: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output omit-xml-declaration="yes" indent="yes"/> <xsl:key name="kAtt" match="attributeType" use="name(../../../..)"/> <xsl:template match="/"> <keyResults> <xsl:copy-of select="key('kAtt', 'a')"/> <xsl:copy-of select="key('kAtt', 'b')"/> <xsl:copy-of select="key('kAtt', 'c')"/> </keyResults> </xsl:template> </xsl:stylesheet> when applied on this source.xml: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output omit-xml-declaration="yes" indent="yes"/> <xsl:key name="kAtt" match="attributeType" use="name(../../../..)"/> <xsl:template match="/"> <keyResults> <xsl:copy-of select="key('kAtt', 'a')"/> <xsl:copy-of select="key('kAtt', 'b')"/> <xsl:copy-of select="key('kAtt', 'c')"/> </keyResults> </xsl:template> </xsl:stylesheet> produces the wanted result: <keyResults> <attributeType>attA-1</attributeType> <attributeType>attA-2</attributeType> <attributeType>attB-1</attributeType> <attributeType>attB-2</attributeType> <attributeType>attC-1</attributeType> </keyResults> Cheers, Dimitre Novatchev.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Keys, Michael Kay | Thread | Re: [xsl] Keys, Dimtre Novatchev |
[xsl] XSLT - Multiple Level Groupin, Arun Sinha | Date | RE: [xsl] Parent, Vasu Chakkera |
Month |