ssiedlerin268: <xsl:for-each-group ...> - Problem

Hallo an alle! Ich habe folgendes Problem:

Hier ist meine XML-Datei [Ausschnitt]:

<doc>
 ....
<Daten>
<Zeile>
<Feld tabelle="N" DecPos="0" Digits="3" Name="FIRMENNUMMER" Type="S">...</Feld>
<Feld tabelle="N" DecPos="0" Digits="3" Name="NIEDERLASSUNG" Type="S">...</Feld>
<Feld tabelle="N" DecPos="0" Digits="1" Name="KZ DEB/KRED." Type="A">D</Feld>
<Feld tabelle="N" DecPos="0" Digits="9" Name="PERS.KONTENNUMMER" Type="S">....</Feld>
<Feld tabelle="N" DecPos="0" Digits="9" Name="SAMMELKONTO" Type="S">...</Feld>
<Feld tabelle="N" DecPos="0" Digits="30" Name="NAME 1" Type="A">....</Feld>
<Feld tabelle="N" DecPos="0" Digits="30" Name="NAME 2" Type="A"/>
<Feld tabelle="N" DecPos="0" Digits="30" Name="STRASSE" Type="A">...</Feld>
<Feld tabelle="N" DecPos="0" Digits="3" Name="LAND" Type="A">...</Feld>
<Feld tabelle="N" DecPos="0" Digits="6" Name="PLZ" Type="A">...</Feld>
<Feld tabelle="N" DecPos="0" Digits="30" Name="ORT" Type="A">...</Feld>
<Feld tabelle="N" DecPos="0" Digits="9" Name="VERBAND PK" Type="S">..</Feld>
...
</Zeile>
</Daten>
</doc>

Das Problem, welches ich nun in meiner XSL-Datei habe, ist folgendes: Ich möchte in einer Word-Datei eine Liste über "Offene Posten" verfassen. Diese enthält Zeile für Zeile die Inhalte des Tags 'Zeile' (mit Werten über Soll, Haben, Saldo, etc. pp - jedoch nur die, die tabelle="J" aufweisen). Fakt ist aber, dass es in der XML-Datei mehrere 'Zeile' gibt, bei denen die 'PERS.KONTENNUMMER' die gleiche ist (heißt also inhaltlich, dass eine 'PERS.KONTENNUMMER' natürlich mehrere Offene Posten, also auch 'Zeile'n haben kann). Diese sollen quasi alle unter einer Überschrift laufen, in der allgemeine Sachen wie z.B. Name, Firma, usw. stehen sollen. Meine XSL-Datei dazu sieht ausschnittsweise wie folgt aus:

....
<xsl:template match="Daten">
<xsl:for-each-group select="Zeile[Feld='K']" group-by="Feld/@Name='PERS.KONTENNUMMER'">
<w:p>
<w:pPr>
<w:tabs>
<w:tab w:val="left" w:pos="1500"/>
<w:tab w:val="left" w:pos="11000"/>
<w:tab w:val="left" w:pos="12000"/>
<w:tab w:val="left" w:pos="13050"/>
</w:tabs>
</w:pPr>
  <w:r>
  <w:t><xsl:value-of select="Feld[@Name='KZ DEB/KRED.']"/>xsl:text    </xsl:text><xsl:value-of select="Feld[@Name='PERS.KONTENNUMMER']"/></w:t>
  <w:tab/>
  <w:t> - <xsl:value-of select="Feld[@Name='NAME 1']"/>xsl:text </xsl:text><xsl:value-of select="Feld[@Name='NAME 2']"/>xsl:text </xsl:text><xsl:value-of select="Feld[@Name='PLZ']"/>xsl:text </xsl:text><xsl:value-of select="Feld[@Name='ORT']"/></w:t>
  <w:tab/>
  <w:t>Vertreter :</w:t>
  <w:tab/><w:tab/>
  <w:t>2. Zielgruppe:</w:t>
  </w:r>
  </w:p>
  <w:p>
<w:pPr>
<w:tabs>
<w:tab w:val="left" w:pos="3000"/>
<w:tab w:val="left" w:pos="6000"/>
</w:tabs>
</w:pPr>
  <w:r>
  <w:t>Ansprechpartner:</w:t>
  <w:tab/>
  <w:t>Telefon: </w:t>
  <w:tab/><w:tab/>
  <w:t>Telefax:</w:t>
  </w:r>
</w:p>
<xsl:for-each select="current-group()">
<w:p>
<w:pPr>
<w:tabs><w:tab w:val="left" w:pos="1500"/>
<w:tab w:val="left" w:pos="3000"/>
<w:tab w:val="left" w:pos="4500"/>
<w:tab w:val="left" w:pos="6000"/>
<w:tab w:val="left" w:pos="7500"/>
<w:tab w:val="left" w:pos="9000"/>
<w:tab w:val="left" w:pos="10500"/>
<w:tab w:val="left" w:pos="12000"/>
<w:tab w:val="left" w:pos="13050"/>
</w:tabs>
</w:pPr>
<w:r>
<xsl:for-each select="Feld[@tabelle='J']">
  <w:t><xsl:value-of select="."/></w:t><w:tab/>
   </xsl:for-each>
   </w:r>
   </w:p>
 </xsl:for-each>
   <w:p>
   <w:pPr>
<w:tabs><w:tab w:val="left" w:pos="1500"/>
<w:tab w:val="left" w:pos="3000"/>
<w:tab w:val="left" w:pos="4500"/>
<w:tab w:val="left" w:pos="6000"/>
<w:tab w:val="left" w:pos="7500"/>
<w:tab w:val="left" w:pos="9000"/>
<w:tab w:val="left" w:pos="10500"/>
<w:tab w:val="left" w:pos="12000"/>
<w:tab w:val="left" w:pos="13050"/>
</w:tabs>
</w:pPr>
<w:r>
  <w:tab/>
  <w:tab/>
  <w:t>722,00</w:t><w:tab/>
  <w:t>-722,00</w:t>
  <w:tab/>
  <w:t>0,00</w:t>
  <w:tab/>
  <w:t>*  Saldo Personenkontoxsl:text   </xsl:text><xsl:value-of select="Feld[@Name='PERS.KONTENNUMMER']"/></w:t>
  <w:br/>
  </w:r>
</w:p>
 </xsl:for-each-group>
...

Ich hoffe, dass das so ungefähr klar geworden ist, was ich erreichen will. Hat jemand eine Idee, weshalb er die ganze Sache nicht annimmt?

  1. Noe,

    ist nicht klar was du machen moechtest. Kannst du mal einen langeren baustein der xml angeben (mit mehreren <zeile/> elementen) und dann kurz aufzeigen, wie das ergebnis aussehen soll (einfach als text), deine erklaerung ist etwas wirr.

    Gruss, Holge r

    1. <doc> <Daten> <Zeile> <Feld tabelle="N" DecPos="0" Digits="3" Name="FIRMENNUMMER" Type="S">..</Feld> <Feld tabelle="N" DecPos="0" Digits="3" Name="NIEDERLASSUNG" Type="S">...</Feld> <Feld tabelle="N" DecPos="0" Digits="1" Name="KZ DEB/KRED." Type="A">...</Feld> <Feld tabelle="N" DecPos="0" Digits="9" Name="PERS.KONTENNUMMER" Type="S">12345</Feld> <Feld tabelle="N" DecPos="0" Digits="9" Name="SAMMELKONTO" Type="S">....</Feld> <Feld tabelle="N" DecPos="0" Digits="30" Name="NAME 1" Type="A">....</Feld> <Feld tabelle="N" DecPos="0" Digits="30" Name="NAME 2" Type="A"/> <Feld tabelle="N" DecPos="0" Digits="30" Name="STRASSE" Type="A">...</Feld> <Feld tabelle="N" DecPos="0" Digits="3" Name="LAND" Type="A">...</Feld> <Feld tabelle="N" DecPos="0" Digits="6" Name="PLZ" Type="A">...</Feld> <Feld tabelle="N" DecPos="0" Digits="30" Name="ORT" Type="A">...</Feld> <Feld tabelle="N" DecPos="0" Digits="9" Name="VERBAND PK" Type="S">....</Feld> <Feld tabelle="N" DecPos="0" Digits="9" Name="ZIELGRP. PK" Type="S">.....</Feld> <Feld tabelle="J" DecPos="0" Digits="5" Name="RECHNUNGSNUMMER" Type="P">....</Feld> <Feld tabelle="N" DecPos="0" Digits="25" Name="LIEF.RECHNUNGSNR." Type="A"/> <Feld tabelle="N" DecPos="0" Digits="9" Name="BELEGNUMMER" Type="S">10003</Feld> <Feld tabelle="N" DecPos="0" Digits="10" Name="BUCHUNGSDATUM" Type="A">....</Feld> <Feld tabelle="N" DecPos="0" Digits="10" Name="BELEGDATUM" Type="A">....</Feld> <Feld tabelle="J" DecPos="2" Digits="13" Name="SOLL" Type="S">100</Feld> <Feld tabelle="J" DecPos="2" Digits="13" Name="HABEN" Type="S">200</Feld> <Feld tabelle="J" DecPos="2" Digits="13" Name="SALDO" Type="S">300</Feld> <Feld tabelle="N" DecPos="2" Digits="13" Name="WÄHRUNGSBETRAG" Type="S">....</Feld> <Feld tabelle="J" DecPos="0" Digits="3" Name="WÄHRUNG" Type="A">...</Feld> <Feld tabelle="N" DecPos="0" Digits="10" Name="FÄLLIGKEITSDATUM" Type="A">...</Feld> <Feld tabelle="J" DecPos="0" Digits="10" Name="SKONTODATUM" Type="A">...</Feld> <Feld tabelle="N" DecPos="2" Digits="5" Name="SKONTOPROZENT" Type="S">....</Feld> <Feld tabelle="N" DecPos="2" Digits="13" Name="SOLLSKONTOBETRAG" Type="S">...</Feld> <Feld tabelle="N" DecPos="0" Digits="2" Name="MAHNSTUFE" Type="A"/> <Feld tabelle="N" DecPos="0" Digits="10" Name="MAHNDATUM" Type="A"/> <Feld tabelle="N" DecPos="0" Digits="1" Name="ZAHLART" Type="A"/> <Feld tabelle="N" DecPos="0" Digits="1" Name="KZ GEGENKONTO" Type="A">....</Feld> <Feld tabelle="J" DecPos="0" Digits="9" Name="GEGENKONTO" Type="S">80190000</Feld> <Feld tabelle="N" DecPos="0" Digits="9" Name="KOSTENSTELLE" Type="S">...</Feld> <Feld tabelle="N" DecPos="0" Digits="9" Name="AUFTRAG" Type="S">....</Feld> <Feld tabelle="N" DecPos="0" Digits="1" Name="OBJEKTART" Type="A"/> <Feld tabelle="N" DecPos="0" Digits="15" Name="OBJEKTNUMMER" Type="A"/> <Feld tabelle="N" DecPos="0" Digits="5" Name="OBJEKTPOSITION" Type="A"/> <Feld tabelle="N" DecPos="0" Digits="3" Name="STEUERSCHLÜSSEL" Type="S">....</Feld> <Feld tabelle="N" DecPos="0" Digits="9" Name="BUCHUNGSVORGANG" Type="S">0</Feld> <Feld tabelle="N" DecPos="0" Digits="25" Name="BUCHUNGSTEXT" Type="A"/> <Feld tabelle="N" DecPos="2" Digits="13" Name="WÄHRUNGSBETRAG" Type="S">....</Feld> <Feld tabelle="N" DecPos="0" Digits="3" Name="WÄHRUNG" Type="A">....</Feld> <Feld tabelle="N" DecPos="0" Digits="6" Name="PERIODE JJJJPP" Type="S">....</Feld> <Feld tabelle="N" DecPos="0" Digits="3" Name="BELEGTYP" Type="A">...</Feld> <Feld tabelle="N" DecPos="0" Digits="1" Name="JOURNALTEIL" Type="A">....</Feld> <Feld tabelle="N" DecPos="0" Digits="14" Name="UMSATZSTEUERIDENTNUMMER" Type="A">....</Feld> <Feld tabelle="N" DecPos="0" Digits="1" Name="OP-KENNZEICHEN" Type="A">....</Feld> <Feld tabelle="N" DecPos="0" Digits="25" Name="AUSGLEICH BELEGNR." Type="A"/> <Feld tabelle="N" DecPos="0" Digits="10" Name="AUSGLEICH DATUM" Type="A"/> <Feld tabelle="N" DecPos="0" Digits="9" Name="AUSGLEICH KONTO" Type="S">.....</Feld> </Zeile> <Zeile> <Feld tabelle="N" DecPos="0" Digits="3" Name="FIRMENNUMMER" Type="S">..</Feld> <Feld tabelle="N" DecPos="0" Digits="3" Name="NIEDERLASSUNG" Type="S">...</Feld> <Feld tabelle="N" DecPos="0" Digits="1" Name="KZ DEB/KRED." Type="A">...</Feld> <Feld tabelle="N" DecPos="0" Digits="9" Name="PERS.KONTENNUMMER" Type="S">12345</Feld> <Feld tabelle="N" DecPos="0" Digits="9" Name="SAMMELKONTO" Type="S">....</Feld> <Feld tabelle="N" DecPos="0" Digits="30" Name="NAME 1" Type="A">....</Feld> <Feld tabelle="N" DecPos="0" Digits="30" Name="NAME 2" Type="A"/> <Feld tabelle="N" DecPos="0" Digits="30" Name="STRASSE" Type="A">...</Feld> <Feld tabelle="N" DecPos="0" Digits="3" Name="LAND" Type="A">...</Feld> <Feld tabelle="N" DecPos="0" Digits="6" Name="PLZ" Type="A">...</Feld> <Feld tabelle="N" DecPos="0" Digits="30" Name="ORT" Type="A">...</Feld> <Feld tabelle="N" DecPos="0" Digits="9" Name="VERBAND PK" Type="S">....</Feld> <Feld tabelle="N" DecPos="0" Digits="9" Name="ZIELGRP. PK" Type="S">.....</Feld> <Feld tabelle="J" DecPos="0" Digits="5" Name="RECHNUNGSNUMMER" Type="P">....</Feld> <Feld tabelle="N" DecPos="0" Digits="25" Name="LIEF.RECHNUNGSNR." Type="A"/> <Feld tabelle="N" DecPos="0" Digits="9" Name="BELEGNUMMER" Type="S">10003</Feld> <Feld tabelle="N" DecPos="0" Digits="10" Name="BUCHUNGSDATUM" Type="A">....</Feld> <Feld tabelle="N" DecPos="0" Digits="10" Name="BELEGDATUM" Type="A">....</Feld> <Feld tabelle="J" DecPos="2" Digits="13" Name="SOLL" Type="S">400</Feld> <Feld tabelle="J" DecPos="2" Digits="13" Name="HABEN" Type="S">500</Feld> <Feld tabelle="J" DecPos="2" Digits="13" Name="SALDO" Type="S">600</Feld> <Feld tabelle="N" DecPos="2" Digits="13" Name="WÄHRUNGSBETRAG" Type="S">....</Feld> <Feld tabelle="J" DecPos="0" Digits="3" Name="WÄHRUNG" Type="A">...</Feld> <Feld tabelle="N" DecPos="0" Digits="10" Name="FÄLLIGKEITSDATUM" Type="A">...</Feld> <Feld tabelle="J" DecPos="0" Digits="10" Name="SKONTODATUM" Type="A">...</Feld> <Feld tabelle="N" DecPos="2" Digits="5" Name="SKONTOPROZENT" Type="S">....</Feld> <Feld tabelle="N" DecPos="2" Digits="13" Name="SOLLSKONTOBETRAG" Type="S">...</Feld> <Feld tabelle="N" DecPos="0" Digits="2" Name="MAHNSTUFE" Type="A"/> <Feld tabelle="N" DecPos="0" Digits="10" Name="MAHNDATUM" Type="A"/> <Feld tabelle="N" DecPos="0" Digits="1" Name="ZAHLART" Type="A"/> <Feld tabelle="N" DecPos="0" Digits="1" Name="KZ GEGENKONTO" Type="A">....</Feld> <Feld tabelle="J" DecPos="0" Digits="9" Name="GEGENKONTO" Type="S">80190000</Feld> <Feld tabelle="N" DecPos="0" Digits="9" Name="KOSTENSTELLE" Type="S">...</Feld> <Feld tabelle="N" DecPos="0" Digits="9" Name="AUFTRAG" Type="S">....</Feld> <Feld tabelle="N" DecPos="0" Digits="1" Name="OBJEKTART" Type="A"/> <Feld tabelle="N" DecPos="0" Digits="15" Name="OBJEKTNUMMER" Type="A"/> <Feld tabelle="N" DecPos="0" Digits="5" Name="OBJEKTPOSITION" Type="A"/> <Feld tabelle="N" DecPos="0" Digits="3" Name="STEUERSCHLÜSSEL" Type="S">....</Feld> <Feld tabelle="N" DecPos="0" Digits="9" Name="BUCHUNGSVORGANG" Type="S">0</Feld> <Feld tabelle="N" DecPos="0" Digits="25" Name="BUCHUNGSTEXT" Type="A"/> <Feld tabelle="N" DecPos="2" Digits="13" Name="WÄHRUNGSBETRAG" Type="S">....</Feld> <Feld tabelle="N" DecPos="0" Digits="3" Name="WÄHRUNG" Type="A">....</Feld> <Feld tabelle="N" DecPos="0" Digits="6" Name="PERIODE JJJJPP" Type="S">....</Feld> <Feld tabelle="N" DecPos="0" Digits="3" Name="BELEGTYP" Type="A">...</Feld> <Feld tabelle="N" DecPos="0" Digits="1" Name="JOURNALTEIL" Type="A">....</Feld> <Feld tabelle="N" DecPos="0" Digits="14" Name="UMSATZSTEUERIDENTNUMMER" Type="A">....</Feld> <Feld tabelle="N" DecPos="0" Digits="1" Name="OP-KENNZEICHEN" Type="A">....</Feld> <Feld tabelle="N" DecPos="0" Digits="25" Name="AUSGLEICH BELEGNR." Type="A"/> <Feld tabelle="N" DecPos="0" Digits="10" Name="AUSGLEICH DATUM" Type="A"/> <Feld tabelle="N" DecPos="0" Digits="9" Name="AUSGLEICH KONTO" Type="S">.....</Feld> </Zeile> <Zeile> .... </Zeile> </Daten> </doc>

      ...So, ich habe quasi jetzt mal zwei Zeilen, die haben beide die Pers.kontennummer "12345", aber unterschiedliche Felder mit dem Namen "Soll", "Haben", "Saldo", usw. Dabei soll dann rauskommen:

      Personenkontnummer: 12345  {Zeile 1}  100    200   300  {Zeile 2}  400    500   600

      ... d.h. also, ich will bei allen Zeilen, die die gleiche Pers.Kontennummer haben, trotzdem nur einmal diese als Überschrift ausgeben, dafür aber andere Werte wie Soll, Haben, Saldo von allen seperat in jeder Zeile!

  2. Hallo,

    <xsl:template match="Daten">
    <xsl:for-each-group select="Zeile[Feld='K']" group-by="Feld/@Name='PERS.KONTENNUMMER'">

    Hoffentlich gibt es in der Tat ein <Feld>K</Feld> in deinem XML.

    statt: group-by="Feld/@Name='PERS.KONTENNUMMER'"

    group-by="Feld[@Name='PERS.KONTENNUMMER']" nehmen.

    Grüße
    Thomas

    1. Hmmm, leider klappt es immer noch nicht :(
      Ja, ich hab ein solches Feld als eines von vielen Tags im Elternelement <Zeile>. Das ist die XLS-Datei, die ich bisher habe und er gibt nichts von dem aus, was in diesem <xsl:for-each-group ...>- Tag steht:

      <?xml version="1.0"?>

      <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
      <xsl:key name="groupby" match="//Zeile" use="Feld[@PERS.KONTENNUMMER]"/>
      <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />
      <xsl:template match="/doc">
      <?mso-application progid="Word.Document"?>
      <w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml">
      <w:body>
      <w:p>
      <w:pPr>
      <w:tabs>
      <w:tab w:val="left" w:pos="1500"/>
      <w:tab w:val="left" w:pos="3000"/>
      <w:tab w:val="left" w:pos="4500"/>
      <w:tab w:val="left" w:pos="6000"/>
      <w:tab w:val="left" w:pos="7500"/>
      <w:tab w:val="left" w:pos="9000"/>
      <w:tab w:val="left" w:pos="10500"/>
      <w:tab w:val="left" w:pos="12000"/>
      <w:tab w:val="left" w:pos="13500"/>
      </w:tabs>
      <w:pBdr>
      <w:top w:val="dotted" w:sz="12" w:space="1" w:color="auto"/>
      <w:bottom w:val="dotted" w:sz="12" w:space="1" w:color="auto"/>
      </w:pBdr>
      </w:pPr>
      <w:r>
      <w:t>FB4405 OP-Liste per   04.03.2009</w:t>
      <w:tab/>
      <w:t>FIRMA</w:t>
      <w:tab/>
      <w:t> - <xsl:value-of select="Daten/Zeile/Feld[@Name='FIRMENNUMMER']"/>xsl:text ...</xsl:text></w:t>
      <w:tab/>
      <w:t>Test AZ komplett Dresden</w:t>
      <w:br/>
      <w:t>....</w:t>
      <w:tab/><w:tab/>
      <w:t>Buchungsdatum:  0.00.00 - 27.02.09</w:t>
      <w:tab/><w:tab/><w:tab/><w:tab/>
      </w:r>
      </w:p>
      <w:p>
      <w:pPr>
      <w:pBdr>
      <w:bottom w:val="dotted" w:sz="12" w:space="1" w:color="000000"/>
      </w:pBdr>
      <w:tabs>
      <w:tab w:val="left" w:pos="1500"/>
      <w:tab w:val="left" w:pos="3000"/>
      <w:tab w:val="left" w:pos="4500"/>
      <w:tab w:val="left" w:pos="6000"/>
      <w:tab w:val="left" w:pos="7500"/>
      <w:tab w:val="left" w:pos="9000"/>
      <w:tab w:val="left" w:pos="10500"/>
      <w:tab w:val="left" w:pos="12000"/>
      <w:tab w:val="left" w:pos="13500"/>
      </w:tabs>
      </w:pPr>
      <w:r>
      <xsl:apply-templates select="Kopf"/>
      </w:r>
      </w:p>
      <xsl:apply-templates select="Daten"/>
      <w:p>
      <w:pPr>
      <w:pBdr>
      <w:bottom w:val="dotted" w:sz="12" w:space="1" w:color="000000"/>
      </w:pBdr>
      </w:pPr>
      </w:p>

      	<w:sectPr>  
      		<w:pgSz w:w="16838" w:h="11906" w:orient="landscape"/>  
      		<w:pgMar w:top="1418" w:right="1418" w:bottom="1418" w:left="1134" w:header="709" w:footer="709" w:gutter="0"/>  
      		<w:cols w:space="708"/>  
      		<w:docGrid w:line-pitch="360"/>  
      	</w:sectPr>  
      </w:body>  
      

      </w:wordDocument>

      </xsl:template>
      <xsl:template match="Kopf">
      <xsl:for-each select="Spalte[@tabelle='J']">
      <w:t><xsl:value-of select="."/></w:t>
      <w:tab/>
      </xsl:for-each>
      </xsl:template>

      <xsl:template match="Daten">
      <xsl:for-each-group select="Zeile[Feld='K']" group-by="Feld[@Name='PERS.KONTENNUMMER']">
      <w:p>
      <w:pPr>
      <w:tabs>
      <w:tab w:val="left" w:pos="1500"/>
      <w:tab w:val="left" w:pos="11000"/>
      <w:tab w:val="left" w:pos="12000"/>
      <w:tab w:val="left" w:pos="13050"/>
      </w:tabs>
      </w:pPr>
        <w:r>
        <w:t><xsl:value-of select="Feld[@Name='KZ DEB/KRED.']"/>xsl:text    </xsl:text><xsl:value-of select="Feld[@Name='PERS.KONTENNUMMER']"/></w:t>
        <w:tab/>
        <w:t> - <xsl:value-of select="Feld[@Name='NAME 1']"/>xsl:text </xsl:text><xsl:value-of select="Feld[@Name='NAME 2']"/>xsl:text </xsl:text><xsl:value-of select="Feld[@Name='PLZ']"/>xsl:text </xsl:text><xsl:value-of select="Feld[@Name='ORT']"/></w:t>
        <w:tab/>
        <w:t>Vertreter :</w:t>
        <w:tab/><w:tab/>
        <w:t>2. Zielgruppe:</w:t>
        </w:r>
        </w:p>
        <w:p>
      <w:pPr>
      <w:tabs>
      <w:tab w:val="left" w:pos="3000"/>
      <w:tab w:val="left" w:pos="6000"/>
      </w:tabs>
      </w:pPr>
        <w:r>
        <w:t>Ansprechpartner:</w:t>
        <w:tab/>
        <w:t>Telefon: </w:t>
        <w:tab/><w:tab/>
        <w:t>Telefax:</w:t>
        </w:r>
      </w:p>
      <xsl:for-each select="current-group()">
      <w:p>
      <w:pPr>
      <w:tabs><w:tab w:val="left" w:pos="1500"/>
      <w:tab w:val="left" w:pos="3000"/>
      <w:tab w:val="left" w:pos="4500"/>
      <w:tab w:val="left" w:pos="6000"/>
      <w:tab w:val="left" w:pos="7500"/>
      <w:tab w:val="left" w:pos="9000"/>
      <w:tab w:val="left" w:pos="10500"/>
      <w:tab w:val="left" w:pos="12000"/>
      <w:tab w:val="left" w:pos="13050"/>
      </w:tabs>
      </w:pPr>
      <w:r>
      <xsl:for-each select="Feld[@tabelle='J']">
        <w:t><xsl:value-of select="."/></w:t><w:tab/>
         </xsl:for-each>
         </w:r>
         </w:p>
       </xsl:for-each>
         <w:p>
         <w:pPr>
      <w:tabs><w:tab w:val="left" w:pos="1500"/>
      <w:tab w:val="left" w:pos="3000"/>
      <w:tab w:val="left" w:pos="4500"/>
      <w:tab w:val="left" w:pos="6000"/>
      <w:tab w:val="left" w:pos="7500"/>
      <w:tab w:val="left" w:pos="9000"/>
      <w:tab w:val="left" w:pos="10500"/>
      <w:tab w:val="left" w:pos="12000"/>
      <w:tab w:val="left" w:pos="13050"/>
      </w:tabs>
      </w:pPr>
      <w:r>
        <w:tab/>
        <w:tab/>
        <w:t>722,00</w:t><w:tab/>
        <w:t>-722,00</w:t>
        <w:tab/>
        <w:t>0,00</w:t>
        <w:tab/>
        <w:t>*  Saldo Personenkontoxsl:text   </xsl:text><xsl:value-of select="Feld[@Name='PERS.KONTENNUMMER']"/></w:t>
        <w:br/>
        </w:r>
      </w:p>
       </xsl:for-each-group>

      <w:p>  
      	<w:pPr>  
      		<w:tabs><w:tab w:val="left" w:pos="1500"/>  
      			<w:tab w:val="left" w:pos="3000"/>  
      			<w:tab w:val="left" w:pos="4500"/>  
      			<w:tab w:val="left" w:pos="6000"/>  
      			<w:tab w:val="left" w:pos="7500"/>  
      			<w:tab w:val="left" w:pos="9000"/>  
      			<w:tab w:val="left" w:pos="10500"/>  
      			<w:tab w:val="left" w:pos="12000"/>  
      			<w:tab w:val="left" w:pos="13050"/>  
      		</w:tabs>  
      	</w:pPr>		  
      	<w:r>  
      		<w:tab/>  
      

      <w:tab/>
        <w:t>722,00</w:t><w:tab/>
        <w:t>-722,00</w:t><w:tab/>
        <w:t>0,00</w:t>
        <w:tab/>
      <w:t>**  Saldo Sammelkonto <xsl:value-of select="Zeile/Feld[@Name='SAMMELKONTO']"/></w:t>
      </w:r>
      </w:p>
      </xsl:template>
      </xsl:stylesheet>

      1. Hallo,

        Hmmm, leider klappt es immer noch nicht :(
        Ja, ich hab ein solches Feld als eines von vielen Tags im Elternelement <Zeile>. Das ist die XLS-Datei, die ich bisher habe und er gibt nichts von dem aus, was in diesem <xsl:for-each-group ...>- Tag steht:

        <xsl:key name="groupby" match="//Zeile" use="Feld[@PERS.KONTENNUMMER]"/>

        In deinem XML gibts kein einziges Elemet, dass ein "PERS.KONTENNUMMER" Attribut hätte,

        <Feld tabelle="N" DecPos="0" Digits="9" Name="PERS.KONTENNUMMER" Type="S">

        also:
        <xsl:key name="groupby" match="//Zeile" use="Feld[@Name='PERS.KONTENNUMMER']"/>

        Wobei du den Key gar nirgends verwendest.

        Dann hast du den Namesraum für "w" nur im ersten Template definiert. Dein XML/XSL-Editor bzw. der XSLT Prozessor müsste dazu Fehlermeldungen ausgegeben haben.

        am besten ist also gleich:
        <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml">

        Vorschlag: du überprüft dein XSLT auf derartige Flüchtigkeitsfehler.

        Grüße
        Thomas

        1. Dass mit dem key hatte ich davor mal probiert, aber auch da bin ich nicht auf die gewünschte Output-Datei gekommen. Scheint irgendwie so, als ob er nicht in den xsl:for-each-group... - Tag geht ...

          1. Hallo,

            Scheint irgendwie so, als ob er nicht in den xsl:for-each-group... - Tag geht ...

            Der Proz. geht da schon hinein, aber bei mir auch wieder raus da ich in dem XML, kein <Feld>K</Feld> habe. Ich kann es zwar irgendwo willkürlich einfügen, aber das bringt dir nichts.
            Sinnvoll wäre also ein XML-Beispiel mit den für dein Problem _wesentlichen_ Daten drinn: z.B.

              
            <doc>  
            	<Daten>  
            		<Zeile>  
            			<Feld tabelle="N" DecPos="0" Digits="3" Name="NIEDERLASSUNG" Type="S">K</Feld>  
            			<Feld tabelle="N" DecPos="0" Digits="9" Name="PERS.KONTENNUMMER" Type="S">12345</Feld>  
            			<Feld tabelle="J" DecPos="2" Digits="13" Name="SOLL" Type="S">100</Feld>  
            			<Feld tabelle="J" DecPos="2" Digits="13" Name="HABEN" Type="S">200</Feld>  
            			<Feld tabelle="J" DecPos="2" Digits="13" Name="SALDO" Type="S">300</Feld>  
            		</Zeile>  
            		<Zeile>  
            			<Feld tabelle="N" DecPos="0" Digits="3" Name="NIEDERLASSUNG" Type="S">...</Feld>  
            			<Feld tabelle="N" DecPos="0" Digits="9" Name="PERS.KONTENNUMMER" Type="S">12345</Feld>  
            			<Feld tabelle="J" DecPos="2" Digits="13" Name="SOLL" Type="S">100</Feld>  
            			<Feld tabelle="J" DecPos="2" Digits="13" Name="HABEN" Type="S">200</Feld>  
            			<Feld tabelle="J" DecPos="2" Digits="13" Name="SALDO" Type="S">300</Feld>  
            		</Zeile>  
            		<Zeile>  
            			<Feld tabelle="N" DecPos="0" Digits="3" Name="NIEDERLASSUNG" Type="S">K</Feld>  
            			<Feld tabelle="N" DecPos="0" Digits="9" Name="PERS.KONTENNUMMER" Type="S">12345</Feld>  
            			<Feld tabelle="J" DecPos="2" Digits="13" Name="SOLL" Type="S">100</Feld>  
            			<Feld tabelle="J" DecPos="2" Digits="13" Name="HABEN" Type="S">200</Feld>  
            			<Feld tabelle="J" DecPos="2" Digits="13" Name="SALDO" Type="S">300</Feld>  
            		</Zeile>  
            	</Daten>  
            </doc>  
            
            

            Grüße
            Thomas

            1. Es funktioniert bereits ...mit <xsl:key ....>. Die ganzen Daten mit dem 'K' liegen ja bei mir vor. Ich hatte sie nur rausgenommen, weil es Geschäftsdaten sind. Ich danke dir trotzdem ;)

              LG