Announcement

Collapse
No announcement yet.

Frage in XSL-Templates??

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

  • Frage in XSL-Templates??

    Hallo...
    Ich habe ein kleines Problem mit XSLT...
    Meine zu verarbeitende Xml-Datei sieht ungefaehr so aus:
    <geraete>
    <computer gehaeuse="big tower">
    <modell>pro 300</modell>
    <extras>fernbedienung</extras>
    <extras>DVD-Brenner</extras>
    <extras>TV-Karte</extras>
    </computer>

    <computer gehaeuse="midi tower">
    <modell>pro 180</modell>
    <extras>TV-Karte</extras>
    </computer>

    <computer gehaeuse="big tower">
    <modell>pro 200</modell>
    <extras>fernbedienung</extras>
    <extras>DVD-Brenner</extras>
    </computer>
    </geraete>

    Die Ausgabe muss so aussehen:

    Geraete:
    1. pro 200 DVD-Brenner
    2. pro 300 fernbedienung DVD-Brenner TV-Karte

    leider nach meine geschriebene XSL :
    <ol>
    <li><xsl:value-of select="geraete/computer/modell" />
    <xsl:apply-templates select="geraete/computer/extras"/>
    <xsl:value-of select="." />
    </li>
    <li><xsl:value select="geraete/computer/modell" />
    <xsl:value-of select="geraete/computer/extras" />
    </li>
    </ol>
    bekomme ich nicht den erwartete Ausgabe.. egal wie ich mache

    Wäre echt genial wenn da jemand eine loesung hätte...

    Viele Grüsse
    bil

  • #2
    Hallo Karim,

    Was Du wahrscheinlich suchst, ist folgendes:

    <h2><strong>Geraete:</strong></h2>
    <p>
    <ol>
    <xsl:for-each select="geraete/computer">
    <li>
    <xsl:value-of select="modell"/>
    <xsl:for-each select="extras">
    <xsl:text>, </xsl:text>
    <xsl:value-of select="."/>
    </xsl:for-each>
    </li>
    </xsl:for-each>
    </ol>
    </p>

    Also eine verschachtelte for-Schleife.

    Viele Grüße

    Martin
    www.aboutxml.d
    Martin Szugat
    www.aboutxml.de

    Comment


    • #3
      Guten Morgen Martin,

      leider ist das nicht die Antwort,die ich suche.
      Die Ausgabe auf dem Bildschirm muss so sein:

      Geraete:
      1. pro 200 DVD-Brenner
      2. pro 300 fernbedienung DVD-Brenner TV-Karte

      mein Problem ist, wie kann ich den pro 180 herausselektieren??denn ich bekomme die ausgabe so:
      1. pro 180
      2. pro 200 DVD-Brenner
      3. pro 300 fernbedienung DVD-Brenner TV-Karte

      Viele Grüsse und schöne Wochenende.
      Kari

      Comment


      • #4
        Hallo Karim,

        Was sind denn genau die Kriterien, nach denen Du den pro 180 herausselektierst? Nur nach dem Namen? Dann musst Du die XPath-Abfrage wie folgt ändern:

        geraete/computer[modell != "pro 180]

        Viele Grüße

        Martin
        www.aboutxml.d
        Martin Szugat
        www.aboutxml.de

        Comment


        • #5
          Hey Martin
          leider das gehts auch nicht mit dem XPath-Abfrage, ich weiss nicht warum geht nicht.bitte kannst du meine XMl datei zuesrt sehen,und die Ausgabe muss so sein:

          Geraete:


          1. pro 200 DVD-Brenner
          2. pro 300 fernbedienung DVD-Brenner TV-Karte

          egal was ich schreibe auch mit dein XPath-Abfrage bekomme ich wieder:

          Geraete:

          1. pro 180
          2. pro 200 DVD-Brenner
          3. pro 300 fernbedienung DVD-Brenner TV-Karte

          Danke für deine Mühe und deine Hilfe
          viele Grüsse
          Kari

          Comment


          • #6
            Hallo Karim,

            Im Anhang, das XSL-Stylesheet. Es verwendet das Filterkriterium geraete/computer[modell != 'pro 180'] und entgegen Deiner Antwort funktioniert dieses Filterkriterium einwandfrei.

            Zusätzlich sortiert es die geraete-Einträge nach dem Namen des Modells.

            Für die Zukunft eine Bitte: Genauere Angaben darüber, was nicht funktioniert und wie es funktionieren sollte (also anstatt "Ausgabe soll so und so ausgucken", besser "die Ausgabe soll nach dem Modellnamen sortiert sein und nicht das Modell "pro 180" enthalten.)

            Viele Grüße

            Martin
            www.aboutxml.d
            Martin Szugat
            www.aboutxml.de

            Comment


            • #7
              Hallo Martin,

              vielen dank nochmalfür deine Mühe und deine Hilfe.

              Ok versprochen in Zukunft ich werde mich bemühen den Aufgabestellung deutlischer zu detaillieren.

              Danke sehr nochmal für dein Anhang.
              Jetzt funktioniert den Filterkriterium einwandfrei auch bei mir,aber weisst du was war der Fehler vorher: ich habe auch geraete/computer[modell != 'pro 180'] geschrieben,aber der Abstand zwischen pro und 180 war groesser als der Abstand zwischen pro und 180 in meiner XML-Datei,deshalb macht keine rausselektion.Endlich hat geklappt.
              Ich wünsche dir schönen Tag und alles Gute.

              Viele Grüsse

              Kari

              Comment

              Working...
              X