numbering across elements

Mike Dickens

Usenet Archive
Joined
Oct 4, 2004
Messages
7
Reaction score
0
hi,
i have a query regarding numbering one set of elements as filtered by another set.
eg if i have

<?xml version="1.0" encoding="ISO-8859-1"?>
<a>
<b i="1" j="aaaa"/>
<b i="2" j="bbbb"/>
<b i="3" j="aaaa"/>
<c i="1" j="xxxx"/>
<c i="2" j="yyyy"/>
<c i="3" j="zzzz"/>
</a>

and i want a numbered c/@j with the same @i as a, where a/@j = "aaaa", ie i get

<x>
<y i="1" j="xxxx"/>
<y i="2" j="zzzz"/>
</x>

(note the @i sequence is 1,2 not 1,3)

what would the xslt look like to do this?

thanks,
mike.
 

Marrow (2)

Usenet Archive
Joined
Nov 19, 2003
Messages
37
Reaction score
0
Hi,

Try something like...

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:eek:utput method="xml" indent="yes"/>

<xsl:key name="kLookupB" match="b[@j='aaaa']" use="@i"/>

<xsl:template match="a">
<x>
<xsl:for-each select="c[key('kLookupB',@i)]">
<y i="{position}" j="{@j}"/>
</xsl:for-each>
</x>
</xsl:template>
</xsl:stylesheet>

HTH
Marrow
http://www.marrowsoft.com - home of Xselerator (XSLT IDE and debugger) http://www.topxml.com/Xselerator
 

Mike Dickens

Usenet Archive
Joined
Oct 4, 2004
Messages
7
Reaction score
0
ah yes, this makes sense now.

thanks for the help,
mike.

Marrow said:
Hi,

Try something like...

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:eek:utput method="xml" indent="yes"/>

<xsl:key name="kLookupB" match="b[@j='aaaa']" use="@i"/>

<xsl:template match="a">
<x>
<xsl:for-each select="c[key('kLookupB',@i)]">
<y i="{position}" j="{@j}"/>
</xsl:for-each>
</x>
</xsl:template>
</xsl:stylesheet>

HTH
Marrow
http://www.marrowsoft.com - home of Xselerator (XSLT IDE and debugger) http://www.topxml.com/Xselerator

Mike Dickens said:
hi,
i have a query regarding numbering one set of elements as filtered by another set.
eg if i have

<?xml version="1.0" encoding="ISO-8859-1"?>
<a>
<b i="1" j="aaaa"/>
<b i="2" j="bbbb"/>
<b i="3" j="aaaa"/>
<c i="1" j="xxxx"/>
<c i="2" j="yyyy"/>
<c i="3" j="zzzz"/>
</a>

and i want a numbered c/@j with the same @i as a, where a/@j = "aaaa", ie i get

<x>
<y i="1" j="xxxx"/>
<y i="2" j="zzzz"/>
</x>

(note the @i sequence is 1,2 not 1,3)

what would the xslt look like to do this?

thanks,
mike.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
548,042
Messages
3,104,223
Members
248,131
Latest member
Tonypshaw1

Latest Threads

Top