Thomas J.S.: XSL Darstellung

Beitrag lesen

Hallo Thomas,

Prima, dass Du das erst jetzt bringst ...

Das wäre an sich egal, aber er möchte eine Gruppierung aufgrund von @bearbeitername und bei doppelten (also wo einer sowohl 'yes'2 als auch 'no' werte hat) diese in der selben zeile ausgeben:

So in der Art:

<?xml version="1.0" encoding="iso-8859-1"?>
<bearbeiter>
 <K bearbeiter="mann" datum="20.10.2003" param="no" anz="5"/>
 <K bearbeiter="frau" datum="20.10.2003" param="yes" anz="2"/>
 <K bearbeiter="frau" datum="20.10.2003" param="no" anz="3"/>
 <K bearbeiter="dingsda" datum="20.10.2003" param="no" anz="1"/>
 <K bearbeiter="bla" datum="20.10.2003" param="yes" anz="2"/>
 <K bearbeiter="blabla" datum="20.10.2003" param="yes" anz="3"/>
 <K bearbeiter="auchda" datum="20.10.2003" param="no" anz="1"/>
 <K bearbeiter="nixda" datum="20.10.2003" param="yes" anz="2"/>
 <K bearbeiter="nixda" datum="20.10.2003" param="no" anz="4"/>
</bearbeiter>

----------------------

<?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="bearbeiterkey" match="K" use="@bearbeiter" />
<xsl:template match="/bearbeiter">
<html>
<head>
 <title>Untitled</title>
</head>
<body>
<table width="400" border="1">
 <tr>
  <td>bearbeiter</td>
  <td>yes</td>
  <td>no</td>
 </tr>
 <xsl:for-each select="K">
  <xsl:variable name="bearbeitername" select="current()[generate-id() = generate-id(key('bearbeiterkey', @bearbeiter))]" />
  <xsl:if test="$bearbeitername = true()">
   <tr>
    <td><xsl:value-of select="@bearbeiter" /></td>
    <td>
     <xsl:if test="@param = 'yes'">
      <xsl:value-of select="@anz" />
     </xsl:if>
     &#160;
    </td>
    <td>
     <xsl:if test="@param = 'no'">
      <xsl:value-of select="@anz" />
     </xsl:if>
     &#160;
    </td>
   </tr>
  </xsl:if>
 </xsl:for-each>
</table>

</body>
</html>
</xsl:template>
</xsl:stylesheet>

Grüße
Thomas