mike: Problem: for-each-group

hy leute!

würd gern folgendes xml nach der Taillierung gruppieren, bekomms aber nicht hin. wie sollte sowas ausschaun?
danke!!!

so hab ichs vergeblich versucht:

und so schaut das xml aus:

  
<Colors>  
<taillierung>803A</taillierung>  
<color>rot</color>  
</Colors>  
<Colors>  
<taillierung>803A</taillierung>  
<color>farbe</color>  
</Colors>
  1. hab den code vergessn :/ sorry!

    die datei wird von mir erzeugt, nur die farbe soll nur jeweils einmal vorkommen. hab den code jetzt mal so probiert, leider ist dann das xml leer.

    <xsl:template match="/">  
    <Root>  
    <xsl:for-each-group select="$PROD_ITEMS/*/*/it:ProductionItems/it:EntityExtension" group-by="it:TAILLIERUNG">  
    <Colors>  
    <taillierung>  
    <xsl:value-of select="current-grouping-key()"/>  
    </taillierung>  
    <color>  
    </color>  
    </Colors></xsl:for-each-group>  
    </Root>  
    </xsl:template>
    
    1. Hallo,

      die datei wird von mir erzeugt, nur die farbe soll nur jeweils einmal vorkommen. hab den code jetzt mal so probiert, leider ist dann das xml leer.

      Dein XSL stimmt nicht mit deinem XML überein.
      Du fragst im XSL nach: $PROD_ITEMS/*/*/it:ProductionItems/it:EntityExtension welches ein TAILLIERUNG-Element enthält. In deinem XML steht a) tallierung (kleingeschrieben) und b) <Color> (inderhalb dann <tallierung> steht) was du in deinem XSL gar nicht berücksichtigst.

      Grüße
      Thomas

      1. hy thomas, danke schonmal für deine antwort!

        ich fisch hab das ursprungs-xml vergessn :(

        so jetzt nochmal zusammengefasst:

        quell-xml: taill.xml

        <root>  
         <Item>  
          <number>2783</number>  
          <ProductionItems>  
           <organizationalUnit>100</organizationalUnit>  
           <EntityExtension>  
            <TAILLIERUNG><value>F85</value></TAILLIERUNG>  
           </EntityExtension>  
          </ProductionItems>  
          <ProductionItems>  
          <ProductionItems>  
           <organizationalUnit>200</organizationalUnit>  
           <EntityExtension>  
            <TAILLIERUNG><value>F85</value></TAILLIERUNG>  
           </EntityExtension>  
          </ProductionItems>  
         </Item>  
         <Item>  
         ...  
         </Item>  
        </root>
        

        mit diesem xsl wollte ich die taillierungen grupieren

        <xsl:template  match="/">  
        <Root>  
        <xsl:for-each-group select="document(taill.xml)/./*/*/it:ProductionItems/it:EntityExtension" group-by="it:TAILLIERUNG">  
        <Colors>  
        <taillierung>  
        <xsl:value-of select="current-grouping-key()"/>  
        </taillierung>  
        </Colors></xsl:for-each-group>  
        </Root>  
        </xsl:template>
        

        so solls dann ausschaun:

        <Colors>  
        <taillierung>F85</taillierung>  
        </Colors>  
        
        

        vielen dank!!

        1. Hallo,

          ich fisch hab das ursprungs-xml vergessn :(
          mit diesem xsl wollte ich die taillierungen grupieren

          Sie passen noch immer nicht zusammen.
          Im XML sind keine Namensräume um XSL schon, im XSL gehst du auf TAILLIERUNG im XML steht darunter jedoch noch <value>.

          <xsl:template match="/">
          <Root>
          <xsl:for-each-group select="document('taill.xml')//TAILLIERUNG" group-by="value">
          <Colors>
          <taillierung>
          <xsl:value-of select="current-grouping-key()" />
          </taillierung>
          </Colors>
          </xsl:for-each-group>
          </Root>
          </xsl:template>

          Und die Hochkommas beim 'taill.xml' nicht vergessen.
          Grüße
          Thomas