Announcement

Collapse
No announcement yet.

Ein-/Ausblenden von Elementen in XSL(T) ?

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

  • Ein-/Ausblenden von Elementen in XSL(T) ?

    Hallo,

    als relativer Neuling in Sachen XML/XSL hätte ich mal eine Frage, die bestimmt so oder ähnlich schon tausendmal gestellt wurde:

    Problem: Innerhalb einer XSL-Datei ist u.a. eine Tabelle enthalten, welche
    zusätzliche Informationen anzeigt; diese Tabelle soll vom Betrachter per Button oder per Link ein- bzw. ausgeblendet werden können, um die Übersicht der Seite zu verbessern. In HTML habe ich bereits Dutzende Beispiele gefunden, leider funktionieren alle nicht in XML/XSL...

    Kann mir jemand sagen, wie das genau geht? XSL-Datei sieht folgendermassen aus:

    <pre>
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
    <html>
    <script type="text/javascript">
    <!--
    <B>// das funktioniert leider nicht...</B>
    function ShowVarianten()
    {
    document.all.TVAR.innerText ='hallo!';
    }
    -->
    </script>
    <body>
    <h3>Geänderte Artikel</h3>
    <p style="font-size: 8pt" >
    <a href="javascript:ShowVarianten()">Varianten anzeigen</a>
    </p>
    <table width="98%">
    <tr>
    <td>
    <xsl:for-each select="AUSWAHL/ARTIKEL">
    [... Artikeleigenschaften ...]

    <xsl: if test="<B>???</B>">
    // hier jetzt Tabelle mit Zusatzinfos anzeigen
    // für jeden Artikel eine, daher kann keine
    // eindeutige(!) ID gesetzt werden ?
    <table>
    [... Zusatzinfos ...]
    </table>
    </xsl:if>
    </xsl:for-each>
    </pre>

    Die Kommentare sind nur zur Erklärung da drin, in der Original-XSL natürlich nicht... Wie man sieht, werden die einzelnen Artikel mit einer Schleife angezeigt; ich möchte nun, wie gesagt, die Zusatzinfos ausblenden, dabei dachte ich daran, evtl. ein zusätzliches Element beim Klick auf den Button hinzuzufügen, welches ich per xsl:if dann weiter unten abfragen kann (hab das oben mal mit drei Fragezeichen angedeutet). Wie kann ich sowas - ggf. mit JavaScript - bewerkstelligen?

    Ich habe auch schon Beispiele mit ActiveX gefunden, die setzen aber voraus, dass man den Dateinamen der XML-Datei kennt; diese wird bei mir temporär dynamisch erzeugt, so dass ich genau diesen Dateinamen nicht habe...

    Hoffe, Ihr könnt mir weiterhelfen, Uli

  • #2
    OOOPS... Forensoftware kürzt meinen Beitrag (spitze Klammern - argh!), also nochmal:

    <PRE>
    &lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
    &lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;
    &lt;xsl:template match="/"&gt;
    &lt;html&gt;
    &lt;body&gt;
    &lt;h3&gt;Geänderte Artikel&lt;/h3&gt;
    &lt;xsl:for-each select="AUSWAHL/ARTIKEL"&gt;
    &lt;xsl:if test="<B>???</B>"&gt;
    &lt;table&gt;
    <B>[... Zusatzinfos ...]</B>
    &lt;/table&gt;
    &lt;/xsl:if&gt;
    &lt;/xsl:for-each&gt;
    &lt;/body&gt;
    &lt;/html&gt;
    &lt;/xsl:template&gt;
    &lt;/xsl:stylesheet&gt;
    </PRE>

    Wie gesagt, es soll die Tabelle mit den Zusatzinfos aus- und einblendbar sein...

    mein Grundgedanke war, irgendwie ein Element oder eine (veränderbare) Variable einzufügen und dann weiter unten abzufragen; habe das mal mit den drei Fragezeichen angedeutet.

    Wär nett wenn jemand eine Idee hätte...

    Danke, Ul

    Comment


    • #3
      Ich stehe momentan vor dem selben Problem wie du, kann dir da leider auch noch nicht weiter helfen. Wenn du rausbekommst wie es funktioniert wäre es toll wenn du es hier reinsetzt

      Comment


      • #4
        Habe eine Lösung gefunden.
        Es funktioniert z.B. mit 2 Buttons, der 1. blendet die Tabelle einer bestimmten id mittels onclick="id_name.style.display='none'" aus, der 2. blendet ihn dann wieder ein mittels onclick="id_name.style.display='block'"

        ich habe meinen Bereich, wo die Tabellen drinn sind folgendermaßen ausgeschachtelt:

        &lt;div id="id_name"&gt;<br>...<br>
        &lt;/div&gt

        Comment

        Working...
        X