[xsl] Grouping with keys

Subject: [xsl] Grouping with keys
From: "Silvia Liberto" <SLiberto@xxxxxx>
Date: Fri, 3 Feb 2006 17:10:02 +0100 (MET)
Hello all,

i have a grouping problem.
I want to group in this example p with val="Heading1" and p with
val="Programlisting".
I have problems with the programlisting, i think my "match" is not correct.
I4ve tried several things but nothing works, have someone an idea what4s
wrong!?

Thanx
Silvia

here is my code:

xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<wordDocument>
	<body>
		<sect>
			<p>
				<pPr>
					<pStyle val="Heading1"/>
				</pPr>
				<r>
					<t>Erste Ueberschrift</t>
				</r>
			</p>
			<p>
				<pPr>
					<pStyle val="Programlisting"/>
				</pPr>
				<r>
					<t>&lt;HTML&gt;</t>
				</r>
			</p>
			<p>
				<pPr>
					<pStyle val="Programlisting"/>
				</pPr>
				<r>
					<t> &lt;HEAD&gt;</t>
				</r>
			</p>	
		</sect>
	</body>
</wordDocument>


Xslt:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

<xsl:key name="heading" match="wordDorcument/body/sect/p"
use="generate-id((preceding-sibling::p[pPr/pStyle/@val='Heading1'" />
<xsl:key name="prog" match="pPr/pStyle/@val='Programlisting'"
use="generate-id((preceding-sibling::p[pPr/pStyle/@val='Programlisting'" />

 <xsl:template match="p">
 <xsl:choose>			
		<xsl:when test="pPr/pStyle/@val='Heading1'">
			<title>
				<xsl:value-of select="r/t"/>
			</title>
		</xsl:when>
		<xsl:when test="pPr/pStyle/@val='Programlisting'">
		<programlisting>
			 <xsl:for-each select="key('prog',generate-id())">
				<xsl:value-of select="r/t"/>
			 </xsl:for-each>	 
		</programlisting>
		</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>





-- 
10 GB Mailbox, 100 FreeSMS/Monat http://www.gmx.net/de/go/topmail
+++ GMX - die erste Adresse f|r Mail, Message, More +++

Current Thread