xsl-list
[Top] [All Lists]

Grouping with keys

2006-02-03 09:10:02
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.
I´ve tried several things but nothing works, have someone an idea what´s
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 +++

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--