xsl-list
[Top] [All Lists]

Re: Grouping with keys

2006-02-09 08:05:33
hello again,

have someone an idea for my problem?
i don´t know where the mistake is?

i have another solution, without keys, but it doesn´t works too!?
Maybe its a small thing!?

can someone give me a tip?

Thanks!

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

 <xsl:template match="p">
 <programlisting>
  <xsl:call-template name="prog"/>
     </programlisting> 
</xsl:template>

<xsl:template match="r">
  <xsl:copy-of select="."/>
</xsl:template>

<xsl:template name="prog">
        &#160; 
      <xsl:for-each  
select="following-sibling::p[pPr/pStyle/@val='Programlisting']">
                  <xsl:value-of select="." />&#160; 
          </xsl:for-each>  
                          

</xsl:template>


</xsl:stylesheet>




Hi Wendell and all,

thanks for helping, i know what you mean when you say i should try a
simpler
solution, but i need this key! ;-)

so i have changed my syntax on the @use attribute for Programlisting.

generate-id(preceding-sibling::p[pPr/pStyle/@val='Heading1'][1])

but it still doesn´t works!? i have no grouping effect?

i can´t find the reason, have you another idea?

the output shoud be like this:

<programlisting>
&lt;HTML&gt;
&lt;HEAD&gt;
&lt;BODY&gt;
</programlisting>



<xsl:key name="prog" match="p[pPr/pStyle/@val='Programlisting']"


use="generate-id(preceding-sibling::p[pPr/pStyle/@val='Programlisting'][1])"/>
 

 <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>



XML:

<?xml version="1.0" encoding="UTF-8"?>
<!--<?mso-application progid="Word.Document"?>-->
<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>    
                      <p>
                              <pPr>
                                      <pStyle val="Programlisting"/>
                              </pPr>
                              <r>
                                      <t> &lt;BODY&gt;</t>
                              </r>
                      </p>    
              </sect>
      </body>
</wordDocument>




-- 
Telefonieren Sie schon oder sparen Sie noch?
NEU: GMX Phone_Flat http://www.gmx.net/de/go/telefonie

--~------------------------------------------------------------------
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>
--~--


-- 
DSL-Aktion wegen großer Nachfrage bis 28.2.2006 verlängert:
GMX DSL-Flatrate 1 Jahr kostenlos* http://www.gmx.net/de/go/dsl

--~------------------------------------------------------------------
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>
--~--



<Prev in Thread] Current Thread [Next in Thread>