XSL Problem

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Hallo

    Ich habe ein kleines Problem und hoffe hier einen Lösungsansatz zu finden.
    Ich habe mir in einer Klasse mit PHP einen Kalender aufgebaut mit allen HTML Tags für die Tabelle.
    Nun übergebe ich dieses Tabelle als String an eine XSL-Datei die mir den Kalender per value-of aufbauen soll.
    Leider funktioniert dies garnicht (jedenfalls nicht mit value-of).
    Der String ist aber im XML Baum vorhanden.

    Quellcode

    1. -<calender>
    2. <table class="cal_table"><tr class="table_title"><td class="td" colspan="7">Oktober 2010</td></tr><tr><td style="font-weight:bold;"><span style="color:#000;">Mo</span></td><td class="strong"><span style="color:#000;">Di</span></td><td class="strong"><span style="color:#000;">Mi</span></td><td class="strong"><span style="color:#000;">Do</span></td><td class="strong"><span style="color:#000;">Fr</span></td><td class="strong"><span style="color:#666;">Sa</span></td><td class="strong"><span style="color:#ff0000;">So</span></td></tr><tr><td class="td"></td><td class="td"></td><td class="td"></td><td class="td"></td><td class="td_black" style="">1</td><td class="td_black" style="">2</td><td class="td_black" style="">3</td></tr><tr class="td"><td class="td_black" style="">4</td><td class="td_black" style="">5</td><td class="td_black" style="">6</td><td class="td_black" style="">7</td><td class="td_black" style="">8</td><td class="td_black" style="">9</td><td class="td_black" style="">10</td></tr><tr class="td"><td class="td_black" style="">11</td><td class="td_black" style="">12</td><td class="td_black" style="">13</td><td class="td_black" style="">14</td><td class="td_black" style="">15</td><td class="td_black" style="">16</td><td class="td_black" style="">17</td></tr><tr class="td"><td class="td_black" style="">18</td><td class="td_black" style="">19</td><td class="td_black" style="">20</td><td style="border:1px solid #ff0000;">21</td><td class="td_black" style="">22</td><td class="td_black" style="">23</td><td class="td_black" style="">24</td></tr><tr class="td"><td class="td_black" style="">25</td><td class="td_black" style="">26</td><td class="td_black" style="">27</td><td class="td_black" style="">28</td><td class="td_black" style="">29</td><td class="td_black" style="">30</td><td class="td_black" style="">31</td></tr></tr></table>
    3. </calender>


    Übergeben tue ich den String so:

    Quellcode

    1. // Kalender aufrufen
    2. $cal = new Calendar();
    3. $tpl->calender = $cal->getCalendar(date("m"),date("Y"));
    4. $tpl->out();


    Was mache ich falsch ??
    Geht das so wie ich das zu realisieren versuche überhaupt, oder muss ich hier ein call-template schreiben ?
    Ich habe nicht vor das so umzubauen das ich nur die Daten per XML übergebe und die Tabelle im XSL Aufbauen !!

    Ich wäre dankbar für einen Lösungsansatz.

    MfG Mad
  • Hab die Lösung selbst gefunden....

    Für alle die das selbe Problem haben, hier die Auflösung:

    Definiert eine Variable ' <xsl:variable nam="calender" select="calender" /> '
    und ruft diese so auf: ' <xsl:value-of disable-output-escaping="yes" select="$calender" /> '

    Wichtig ist hierbei die disable-output-escaping Regel auf 'Yes' zu setzen, damit die Zeichen < und > nicht in Ihren XSL Namen umgewandelt sondern auch so dargestellt werden wie sie sein müßen um die Tabelle aufzubauen.

    Ich weiß, jetzt werden einige Profis sagen, das ist aber recht unsauber und das wenn man mit Methoden von Objekten arbeitet man nur Werte und keine komplettes HTML erzeugen sollte, aber sei es drum ich fand diese Lösung (des Kalenderbaues) relativ einfach und für meine Zeitvorgabe genau richtig.