hh: Tabelleblatt in XSL mit XML

Hi,

ich bin auf der Suche nach guten Ansätzen, wie man ein Tabellenblatt mit xsl und xml erstellt. Klingt erst einmal leicht aber folgende Sachverhalte muessen berücksichtigt werden. Die Zellen-Werte hole ich mir über eine bestimmte id, also etwa so:

<root>
<tr idRef="...">
<th idRef="..."/>
<th idRef="..."/>
</tr>
</root>

Nun soll aber auch reihenfolgen bestimmt werden, etwa die Zeilenfolge. Jedoch nicht durch Nummerierung etwa 1, 1.1., 1.2., 2, 2.1, 2.2 usw. erfolgen, sondern vielmehr mit einem verweis, auf die nachfolgende Zeile. Ziel soll es sein, eine XML Datei zu erzeugen, die einfach mit XSL als Tabelle dargestellt werden kann. Die Werte werden aus einer anderen XML Datei über die id herausgelesen. Sofern keine Daten für eine Zeile vorhanden, bzw. für einen Spalte nicht vorhanden sind, soll die Zeile bzw. die Spalte nicht angezeigt werden. Kennt jemand Ansätze dafür? Ich stelle es mir insebsondere schwer vor zu überprüfen, ob Werte für die Spalte bzw. Zeile vorhanden sind. Bin dankbar für mögliche Ansätze

Gruß,
Holger

  1. Hello out there!

    Nun soll aber auch reihenfolgen bestimmt werden, etwa die Zeilenfolge. Jedoch nicht durch Nummerierung etwa 1, 1.1., 1.2., 2, 2.1, 2.2 usw. erfolgen, sondern vielmehr mit einem verweis, auf die nachfolgende Zeile.

    Wie bitte?

    Ziel soll es sein, eine XML Datei zu erzeugen, die einfach mit XSL als Tabelle dargestellt werden kann.

    Wie bitte? Warum willst du nicht aus deiner ersten XML-Datei die (X)HTML-Ausgabe erzeugen?

    Wie wäre es, wenn du uns zeigtest, wie deine XML-Datei aussieht und wie deine Ausgabe aussehen soll?

    See ya up the road,
    Gunnar

    --
    “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
    1. Hallo Gunnar,

      vielleicht wirklich etwas unsauber in der Problemformulierung. Also noch mal der Versuch ;-) An den originären XML Daten kann ich nichts ändern, die liegen aber in einer Datei vor etwa so

      <value id="eindeutigeID">134</value>
      <value id="eindeutigeIDxy">210</value>

      Diese Daten liegen unsortiert in einer großen XML Datei. Nun würde ich gerne die Daten aufbereiten und in eine Tabellenform bringen. Ich habe ein konkretes Muster, wie die Daten anzuordnen sind. Also ich weiss, welche Elemente in welche Reihe gehören und in welche Spalten sie  zu plazieren sind. Nun dachte ich mir, eine Art XML Muster zu erstellen. In dem Muster sind dann die jeweiligen Reihen und Spalten mit ihren IDVerweisen hinterlegt. Ziel ist es, mit XSL eine einfache Abfrage durchzuführen, die dann die Tabelle (rekursive) erstellt. Mit der Nummerierung meinte ich, dass ich etwa nicht so vorgehen möchte

      <th idverweis="..." stufe="1" unterstufe="0"/>
      <th idverweis="..." stufe="1" unterstufe="1"/>
      <th idverweis="..." stufe="1" unterstufe="2"/>
      <th idverweis="..." stufe="2" unterstufe="0"/>
      <th idverweis="..." stufe="2" unterstufe="1"/>
      .
      .
      .

      Sondern möchte ich noch eine "Verbindung" schaffen, die sich nicht über eine solche Nummerierung ergibt, da ich beim Ändern einer Stufennummer alle anderen Nummer dementsprechen auch ändern muesste und dass bei über 80 Stufen ziemlich schweisstreibend sein wuerde. Also eher so

      <th idverweis="eindeutigeID" />
      <th idverweis="..." unterthvon="eindeutigeID" sortier="1"/>
      <th idverweis="..." unterthvon="eindeutigeID" sortier="2"/>
      .
      .

      Man könnte natuerlich gleich in XSL die Tabelle mit der original XML ansteuern, allerdings wollte ich mir eine Art Vorlage bauen, da ich verschieden Datenblätter erstellen muss. Zudem sollen Spalten und Zeilen, die keine Werte enthalten nicht mit ausgegeben werden.

      Etwas verständlicher?

      Gruß,

      Holger

      1. Hallo,

        (OT: --> https://forum.selfhtml.org/?t=131924&m=854054)

        Diese Daten liegen unsortiert in einer großen XML Datei. Nun würde ich gerne die Daten aufbereiten und in eine Tabellenform bringen. Ich habe ein konkretes Muster, wie die Daten anzuordnen sind. Also ich weiss, welche Elemente in welche Reihe gehören und in welche Spalten sie  zu plazieren sind. Nun dachte ich mir, eine Art XML Muster zu erstellen. In dem Muster sind dann die jeweiligen Reihen und Spalten mit ihren IDVerweisen hinterlegt. Ziel ist es, mit XSL eine einfache Abfrage durchzuführen, die dann die Tabelle (rekursive) erstellt. Mit der Nummerierung meinte ich, dass ich etwa nicht so vorgehen möchte

        <th idverweis="..." stufe="1" unterstufe="0"/>
        <th idverweis="..." stufe="1" unterstufe="1"/>
        <th idverweis="..." stufe="1" unterstufe="2"/>
        <th idverweis="..." stufe="2" unterstufe="0"/>
        <th idverweis="..." stufe="2" unterstufe="1"/>
        .
        .
        .

        Sondern möchte ich noch eine "Verbindung" schaffen, die sich nicht über eine solche Nummerierung ergibt, da ich beim Ändern einer Stufennummer alle anderen Nummer dementsprechen auch ändern muesste und dass bei über 80 Stufen ziemlich schweisstreibend sein wuerde. Also eher so

        <th idverweis="eindeutigeID" />
        <th idverweis="..." unterthvon="eindeutigeID" sortier="1"/>
        <th idverweis="..." unterthvon="eindeutigeID" sortier="2"/>
        .
        .

        Man könnte natuerlich gleich in XSL die Tabelle mit der original XML ansteuern, allerdings wollte ich mir eine Art Vorlage bauen, da ich verschieden Datenblätter erstellen muss. Zudem sollen Spalten und Zeilen, die keine Werte enthalten nicht mit ausgegeben werden.

        Etwas verständlicher?

        Es wurde nicht wirklich verständlicher ;-)
        Was ich nicht verstehe ist, welche Bedeutung für dich diese Sortierung/Nummerierung/Verbindung hat. Zudem sprichst du nur von Spalten und Zeilen (nie von Zellen, in denen der eigentliche Inhalt kommen soll: "Spalten und Zeilen, die keine Werte enthalten nicht mit ausgegeben werden" das geht nur wenn du alle Zellen für die gedachte Spalte und Zeile überprüfst)

        Ist eine <value id="eindeutigeID">134</value> eine Zelleninhalt?
        Kommt das dann z.B. in: <th idverweis="eindeutigeID" />
        Und was beduetet dann: <th idverweis="..." unterthvon="eindeutigeID" sortier="1"/>?
        Meinst du damit eine Anordnung wie:
        <tr>
          <th (idverweis="eindeutigeID")></th>
          <th (idverweis="..." unterthvon="eindeutigeID" sortier="1"/>
        <th ... sortier="2")></th>
        ...
        <th (... sortier="5")>/th>
        </tr>

        Grüße
        Thomas