scs: Messreihe sortieren

Beitrag lesen

Hallo, hab folgendes Problem:

ich mach mehrere Messungen mit einem Programm, dass eine art Report ausgibt in XML. Diesen möchte ich mittels XSL sortieren. Die Ausgabe aller Infos die ich möchte habe ich bereits in XSL geschrieben. Nun ist aber im Beispiel hier die Messung Kinderkarussel_01 und Kinderkarusell_02 gleich. Sie unterscheiden sich nur in ihrem Namen. Jetzt sollen diese Messungen zussamengefasst werden und als Kinderkarusell_01 & _02 ausgegeben werden. Ich hoffe man versteht mich?!

Hier die XML:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="..........\Desktop\XSL\3-Ebenen.xsl"?>
<pak>
  <datasource url="C:/...">
    <project name="XSL">
      <test name="Muster">
        <subtest name="Kinderkarussel_01">
          <cycle name="">

<measurement name="Messung" date="05.07.2000">
              <tstsubject>Pferd</tstsubject>
              <tststand>Karussel</tststand>
              <expert>Chef</expert>
              <expertdiv>Abteilung</expertdiv>
              <orderer>Mustermann</orderer>
              <ordererdiv></ordererdiv>
              <probe name="Probe.def">
              </probe>
              <messtext name="Beschreibung">
                <t>dreht links herum, </t>
                <t>geht auf und ab</t>
              </messtext>
            </measurement>
          </cycle>
        </subtest>
        <subtest name="Kinderkarussel_02">
          <cycle name="">

<measurement name="Messung" date="05.07.2000">
              <tstsubject>Pferd</tstsubject>
              <tststand>Karussel</tststand>
              <expert>Chef</expert>
              <expertdiv>Abteilung</expertdiv>
              <orderer>Mustermann</orderer>
              <ordererdiv></ordererdiv>
              <probe name="Probe.def">
              </probe>
              <messtext name="Beschreibung">
                <t>dreht links herum, </t>
                <t>geht auf und ab</t>
              </messtext>
            </measurement>
          </cycle>
        </subtest>
        <subtest name="anderes Karusell_03">
          <cycle name="">
            <measurement name="Messung" date="05.07.2000">
              <tstsubject>Pferd</tstsubject>
              <tststand>Karussel</tststand>
              <expert>Chef</expert>
              <expertdiv>Abteilung</expertdiv>
              <orderer>Mustermann</orderer>
              <ordererdiv></ordererdiv>
              <probe name="Probe.def">
              </probe>
              <messtext name="Beschreibung">
                <t>dreht rechts herum, </t>
                <t>sonst nix</t>
              </messtext>
            </measurement>
          </cycle>
        </subtest>
      </test>
    </project>
  </datasource>
</pak>

Und die bisherige XSL:

<?xml version="1.0" encoding="ISO-8859-1"
?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"encoding="ISO-8859-1"indent="yes"/>
<xsl:template match="/">
<html>
<head><style type="text/css">
body {font-family:Univers,Helvetica,Arial,sans-serif;font-size:6pt};
h1 {font-family:Univers,Helvetica,Arial,sans-serif;color:black;font-size:10pt}
h2{ font-family:Univers,Helvetica,Arial,sans-serif;color:black;font-size:8pt}
font-family:Univers,Helvetica,Arial,sans-serif;font-size:6pt}.red {color:red}.blue{color:blue}
ol{ font-family:Univers,Helvetica,Arial,sans-serif;color:black;font-size:8pt}

td {vertical-align:top;font-family:Univers,Helvetica,Arial,sans-serif;color:black;font-size:6pt}

div{font-family:Univers,Helvetica,Arial,sans-serif;font-size:6pt;color:blue}.black{color:black}
</style>
</head>
</html>
<table width="100%" rules="rows">
<thead>
<tr>
<h1><xsl:value-of select="//datasource/@name"/><br></br>
</h1>
</tr>
</thead>
<tfoot>
<tr>
<td><p>Messungen</p></td>
</tr>
</tfoot>
<tbody>
<xsl:for-each select="//datasource/project/test/subtest/cycle/measurement">
<tr>
<td style="width:40%">
<h1><xsl:value-of select="../../@name"/></h1><br></br>
<h2 style="position:relative; left:5%"><xsl:value-of select="../@name"/></h2>
<div style="position:relative; left:10%">
<table>
<tr><td>Projekt:</td><td><xsl:value-of select="//@name"/></td></tr>
<tr><td>Daten auf:</td><td><xsl:value-of select="//@url"/></td></tr>
<tr><td>Versuchsname:</td><td><xsl:value-of select="../../../@name"/></td></tr>
<tr><td>Messdatum:</td><td><xsl:value-of select="@date"/></td></tr>
<tr><td>Messbeschreibung:</td><td><xsl:value-of select="tstsubject"/></td></tr>
<tr><td>Messort:</td><td><xsl:value-of select="tststand"/></td></tr>
<tr><td>Bearbeiter:</td><td><xsl:value-of select="expert"/>
<xsl:value-of select="expertdiv"/>)</td></tr>     </table>
</div></td>
<td style="width:35%">
<xsl:for-each select="messtext">
<h2>Messtext : <xsl:value-of select="@name"/></h2>
<ol type="circle">        <xsl:for-each select="t">       <li><xsl:value-of select="."/></li>
</xsl:for-each>
</ol>
</xsl:for-each>
</td>

<td style="width:25%">
<div style="color:red"><xsl:for-each select="./setup/samplinggroups/samplinggroup/chansetting/mkiichannel">
<xsl:if test="active = 1">       <xsl:value-of select="position()"/>xsl:text - </xsl:text>   <xsl:value-of select="./chanpos/mptext"/>
<br></br>
</xsl:if>
</xsl:for-each>
</div>
<div style="color:green"><xsl:for-each select="./setup/samplinggroups/samplinggroup/chansetting/audiochannel">
<xsl:if test="active = 1">       <xsl:value-of select="position()"/>xsl:text - </xsl:text>   <xsl:value-of select="./chanpos/mptext"/>
<br></br>
</xsl:if>
</xsl:for-each>
</div>
<div style="color:blue"><xsl:for-each select="./setup/samplinggroups/samplinggroup/chansetting/vxichannel">
<xsl:if test="active = 1">       <xsl:value-of select="position()"/>xsl:text - </xsl:text>   <xsl:value-of select="./chanpos/mptext"/>
<br></br>
</xsl:if>
</xsl:for-each>
</div>
<div style="color:black"><xsl:for-each select="./setup/samplinggroups/samplinggroup/chansetting/e1413channel">
<xsl:if test="active = 1">
<xsl:value-of select="position()"/>xsl:text - </xsl:text>   <xsl:value-of select="./chanpos/mptext"/>
<br></br>
</xsl:if>
</xsl:for-each>
</div>
<div style="color:purple"><xsl:for-each select="./setup/samplinggroups/samplinggroup/chansetting/calculatedchannel">
<xsl:if test="active = 1">      <xsl:value-of select="position()"/>xsl:text - </xsl:text>   <xsl:value-of select="./chanpos/mptext"/>
<br></br>
</xsl:if>
</xsl:for-each>
</div>
</td>
</tr>
</xsl:for-each>
</tbody>
</table>
xsl:template
</xsl:stylesheet>