Announcement

Collapse
No announcement yet.

Spaltenbreite von Tabellen anhand von attributen bestimmen

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

  • Spaltenbreite von Tabellen anhand von attributen bestimmen

    Hallo!

    Ich würde gerne mit meinem Stylesheet (über XPath), die Spaltenbreite innerhalb von Tabellen aus einer XML auslesen.
    Den Wert dafür, speicher ich in dem Attribut colwidth in jedem entry.

    Innerhalb einer <row> ist jedes <entry> eine neue Spalte.
    Also würde beispielsweise
    <row><entry>...</entry><entry>....</entry></row>
    <row><entry>...</entry><entry>....</entry></row>

    folgende Tabelle ergeben:

    Spal.1 Spal.2
    +----++----+
    |.......||.......| Reihe1
    +----++----+

    +----++----+
    |.......||.......| Reihe2
    +----++----+

    Die Werte kriege ich eigentlich soweit ausgelesen.
    Problem ist dabei, dass immer der letzte Wert in colwidth genommen wird(Dort benötige ich lediglich den größten Wert in colwidth innerhalb einer Spalte).

    Weiterhin betreffen meine ausgelesenen Werte immer nur die erste Spalte.
    Also meine for-each für <fo:table-column>, in der ich dnan die Werte der richtigen Spalte zuweise, klappt irgendwie auch nicht(hat jetzt nicht wirklich was mit XPath zu tun, vllt hat da trotzdem einer eine Idee)

    In der XML ist außerdme für jede Tabelle das Attribut tablenum hinterlegt, welches auch noch eine Rolle in der ganzen Sache spielt.

    Diese nummern müsste ich irgendwie zählen und dann später der aktuellen Tabelle die richtigen Werte zuweisen.

    Wie man sieht steh ich da vor ner Menge offener Fragen...

    Hier nochmal die Inhalt, wie er in der XML steht:


    Code:
    <table tablenum="1"><caption />
    <tbody><row>
    <entry align="left" valign="top" role="c255,255,255#l2t2r2b2" 
    rowheight="5" colwidth="100">
    <phrase>test</phrase></entry>
    <entry align="left" valign="top" role="c255,255,255#l2t2r2b2"
     rowheight="5" colwidth=""><phrase>test </phrase></entry></row>
    
    <row><entry align="left" valign="top" role="c255,255,255#l2t2r2b2"
     rowheight="5" colwidth=""><phrase>test</phrase></entry>
    <entry align="left" valign="top" role="c255,255,255#l2t2r2b2" 
    rowheight="5" colwidth="30"><phrase>test2</phrase></entry></row>
    </tbody></table>

    Bin für jede Hilfe dankbar...


    Viele Grüße

  • #2
    So du dein XML-Format per XSLT umwandeln willst, ist eigentlich http://entwickler-forum.de/forumdisplay.php?f=369 das richtige Forum, um Hilfe mit dem XSLT-Code zu finden. Dabei ist es sinnvoll, ein kleines Beispiel des Eingabeformates zu posten, wie du es getan hast, aber dann dazu das gewünschte Ausgabeformat. Dann können wir mit dem XSLT helfen.
    Erzähle uns bitte auch, ob du XSLT Version 2.0 oder 1.0 benutzen willst.

    Comment

    Working...
    X