Lily: XSL tabellarische Darstellung

Hallo,

Ich möchte die folgende XML-Datei tabellarisch in XSL darstellen

<bearbeiter>
 <K bearbeiter="mann" param="no" anz="5"/>
 <K bearbeiter="frau" param="yes" anz="2"/>
 <K bearbeiter="frau" param="no" anz="3"/>
 <K bearbeiter="dingsda" param="no" anz="1"/>
 <K bearbeiter="bla" param="yes" anz="2"/>
 <K bearbeiter="blabla" param="yes" anz="3"/>
 <K bearbeiter="auchda" param="no" anz="1"/>
 <K bearbeiter="nixda" param="yes" anz="2"/>
 <K bearbeiter="nixda" param="no" anz="4"/>
</bearbeiter>

und zwar:
bearbeiter  yes  no
mann         -   5
frau         2   3
dingsda      -   1
bla          2   -
blabla       3   -
auchda       -   1
nixda        2   4

Kann jemand mir helfen? danke

Lily

  1. Hi,

    Ich möchte die folgende XML-Datei tabellarisch in XSL darstellen

    XSL dient der Transformation eines XML in ein anderes. Es dient _nicht_ der Darstellung. Dafür ist CSS zuständig. Was genau ist also das Problem, welches Du nicht selbst lösen konntest?

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. XSL dient der Transformation eines XML in ein anderes. Es dient _nicht_ der Darstellung. Dafür ist CSS zuständig. Was genau ist also das Problem, welches Du nicht selbst lösen konntest?

      Die Informationen von XML in eine XSL Datei tabellarisch abbilden
      Lily

      1. Hi,

        Was genau ist also das Problem, welches Du nicht selbst lösen konntest?
        Die Informationen von XML in eine XSL Datei tabellarisch abbilden

        das ist nicht "genau", und zwar nicht zuletzt, weil in XSL nicht abgebildet wird, sondern umgewandelt. Ich weiß, was Du zuerst hast - was aber willst Du am Ende rausbekommen, und welches Problem hast Du bei dem Versuch, dieses Ergebnis zu erzielen?

        Cheatah

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hi,

          Was genau ist also das Problem, welches Du nicht selbst lösen konntest?
          Die Informationen von XML in eine XSL Datei tabellarisch abbilden

          das ist nicht "genau", und zwar nicht zuletzt, weil in XSL nicht abgebildet wird, sondern umgewandelt. Ich weiß, was Du zuerst hast - was aber willst Du am Ende rausbekommen, und welches Problem hast Du bei dem Versuch, dieses Ergebnis zu erzielen?

          Ich habe ein Problem fass ich frau und nixda in eine Zeile umwandele.
          ich möchte
          bearbeiter yes no
          frau        2  3
          nixda       2  4

          Ich kriege immer
          frau  2
          frau    3
          nixda 2
          nixda   4
          Das ist leider falsch :-(
          Lily

          1. Hi,

            poste bitte mal den XSL Code, Fehler raten ohne Quellcode ist so anstrengend.

            Gruss

            Marko

            1. <?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: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>

              1. <iframe src="http://forum.de.selfhtml.org/my/?t=61231&m=345087" width="90%" height="90%">http://forum.de.selfhtml.org/my/?t=61231&m=345087</iframe>

          2. Hi,

            was aber willst Du am Ende rausbekommen, und welches Problem hast Du bei dem Versuch, dieses Ergebnis zu erzielen?
            ich möchte
            bearbeiter yes no

            ich ergänze meine Frage: Welches _XML_ möchtest Du am Ende herausbekommen, und welches Problem hast Du bei dem Versuch, dieses Ergebnis zu erzielen?

            Cheatah

            --
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
  2. Hallo,

    Ich möchte die folgende XML-Datei tabellarisch in XSL darstellen

    Nach dem du mich ja per Mail zur selben Frage (die du hier im Forum schon gestellt hast)  gefragt hast und ich dir geantwortet habe, dass ich anonyme Fragen nur im Forum beantworte, ziehst du vor lieber anonym im Forum nochmal zu fragen. Ich halte das für einen bedauerlichen Zustand.
    Sei's drum, du wirst schon wissen, wer du bist und warum du lieber anonym bleibst.

    Hier die Lösung

    Grüße
    Thomas
    -----------------------------------
    <?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[generate-id() = generate-id(key('bearbeiterkey', @bearbeiter))]">
      <tr>
       <td><xsl:value-of select="@bearbeiter" /></td>
       <td>
        <xsl:for-each select="key('bearbeiterkey', @bearbeiter)">
         <xsl:if test="@param = 'yes'">
          <xsl:value-of select="@anz" />
         </xsl:if>
        </xsl:for-each>
        &#160;
       </td>
       <td>
        <xsl:for-each select="key('bearbeiterkey', @bearbeiter)">
         <xsl:if test="@param = 'no'">
          <xsl:value-of select="@anz" />
         </xsl:if>
        </xsl:for-each>
        &#160;
       </td>
      </tr>
     </xsl:for-each>
    </table>

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

    1. Danke für Deine Hilfe

      Lily