Announcement

Collapse
No announcement yet.

n tabellen erzeugen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • n tabellen erzeugen

    ich habe eine webform mit der ich beliebig viele elemente erzeugen kann, die elemente möchte ich dann mit hilfe einer xsl in einer tabelle anzeigen.
    das ergebnis sollte so aussehen das in der tabelle in einer zelle der "titel" und in einer anderen der "text" steht.
    wie kann ich mehrere solcher tabellen erstellen?
    es gibt immer nur 1 titel und 1 text dazu aber davon sehr viele.
    ich hab schon versucht "<xsl:for-each select="document/elements/element[@type='titel']">" vor und "</xsl:for-each>" nach der Tabelle hinzuschreiben, weil dann für jeden titel eine tabelle erzeugt wird. allerdings hab ich dann das problem das die Tabellen leer sind. würde er die tabellen auch noch füllen wäre ich schon am ziel.


    hier meine tabelle:

    <table border="0">
    <tr>
    <td>
    </td>
    <td rowspan="2">
    <xsl:for-each select="document/elements/element[@type='titel']">
    <div id="title_zoom"><xsl:value-of disable-output-escaping="yes" select="current()" /></div>
    </xsl:for-each>
    </td>
    </tr>
    <tr>
    <td>
    <xsl:for-each select="document/elements/element[@type='text']">
    <div id="teaser_zoom"><xsl:value-of disable-output-escaping="yes" select="current()" /></div>
    </xsl:for-each>
    </td>
    </tr>
    </table>
    <br/>



    viele grüße
    Matthias

  • #2
    Werde mal etwas konkreter unter Angabe der XML-Struktur. Für zwei Zellen jeweils eine neue Tabelle zu erzeugen ist doch eher ungünstig.

    Comment


    • #3
      HTML Code:
      <documenttype id="artikel" description="Feature" showpreview="true" showelementlist="true" showrelateditems="false">
       <elements>
         <element id="title" description="xml.xlbl.name" type="inputfield" default="true" size="75" maxlength="75"/>
         <element id="text" description="xml.xlbl.text" type="htmledit" default="true" />
       </elements>
      </documenttype>

      ich hab eine seite mit vielen (n) input feldern und text areas (je nach bedarf kann ich neue hinzufügen) und die möchte ich dann in dieser tabelle auf einer anderen seite ausgeben lassen. es muss eine tabelle sein aus layout gründen.

      Comment


      • #4
        Also pro elements-Struktur eine Tabelle?

        Comment


        • #5
          ja
          pro titel und text eine tabelle.

          Comment


          • #6
            Hm, im XML-Code stehen die Werte title bzw. text beim id- und nicht beim type-Attribut, also ist wohl id gemeint. Hier mal ein Vorschlag, wobei mehrfach dieselben id-Werte entstehen. Mittels Anhängen der aktuellen position() könnte man das vermeiden:

            Code:
            <xsl:template match="documenttype">
              <html>
                <head><title>Test</title></head>
                <body><xsl:apply-templates select="elements"/></body>
              </html>  
            </xsl:template>
              
            <xsl:template match="elements">
              <table border="0">
                <tbody>
                  <xsl:apply-templates select="element"/>
                </tbody>
              </table>  
            </xsl:template>
            
            <xsl:template match="element[@id='title']">
              <tr>
                <td rowspan="2"><div id="title_zoom"><xsl:copy-of select="current()"/></div></td>
              </tr>  
            </xsl:template>
            
            <xsl:template match="element[@id='text']">
              <tr>
                <td><div id="teaser_zoom"><xsl:copy-of select="current()"/></div></td>
              </tr>  
            </xsl:template>
            Zuletzt editiert von Thomas Meinike; 15.02.2008, 21:12.

            Comment

            Working...
            X