This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: xsl array alternatives (novice)
- From: Stuart Brown <sbrown at extenza dot co dot uk>
- To: "'xsl-list at lists dot mulberrytech dot com'" <xsl-list at lists dot mulberrytech dot com>
- Date: Wed, 18 Sep 2002 20:41:42 +0100
- Subject: RE: [xsl] xsl array alternatives (novice)
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi Isaac
I have xml that looks something like this:
> Exhibit A. --before
> (many other irrelevent records)...
> <nodeA att1="True" att2="N" att3="1234"/>
> <nodeA att1="True" att2="N" att3="321"/>
> <nodeA att1="True" att2="N" att3="456"/>
> <nodeA att1="True" att2="Y" att3="9876"/>
> <nodeB att1="True" att5="Y" att3="45"/>
> <nodeB att1="True" att5="N" att3="65"/>
> <nodeC att1="True" att7="Y" att3="784"/>
> <nodeC att1="True" att7="Y" att3="412"/>
> <nodeC att1="True" att7="N" att3="635"/>
> ...(many other irrelevent records)
>
> I would like to create xml output that looks something like this:
>
> Exhibit B. --after
> (many irrelevent records)...
> <nodeA att1="True" att2="N" att3="1234"/>
> <nodeA att1="True" att2="N" att3="321"/>
> <nodeA att1="True" att2="N" att3="456"/>
> <nodeB att1="True" att5="N" att3="65"/>
> <nodeC att1="True" att7="N" att3="635"/>
> ...(many irrelevent records that may or may not have duplicate attribute
> names and values)
> <nodeA att1="True" att2="Y" att3="9876"/>
> <nodeB att1="True" att5="Y" att3="45"/>
> <nodeC att1="True" att7="Y" att3="784"/>
> <nodeC att1="True" att7="Y" att3="412"/>
> <end of document/>
Why not use a key:
<xsl:key name="getNodes" match="nodeA|nodeB|nodeC" use="@*"/>
Then all you need to do is:
<xsl:copy-of select="key('getNodes','N')"/>
<xsl:copy-of select="key('getNodes','Y')"/>
Cheers
S
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list