Connie: Inhalt eines Elementes abfragen und davon abhängig formatieren

Hallo!

Ich arbeite mich gerade in XSL ein und stehe vor folgendem Problem:

in der XML-Datei steht ein Element "line":

<line type="cmd">....</line> (wobei 1 für 1...n) steht

wenn dieses Element einen bestimmten Inhalt hat, dann soll "</P><P>" ausgegeben werden:

<line type="cmd">.SPC 1</line> <= wobei 1 für 1...n steht

ich bekomme nun die Abfrage einfach nicht hin,

<xsl:template match="line[@type='cmd']"/>
damit finde ich schon die Zeilen, die das Attribut "cmd" enthalten, aber wie frage ich ab?

mit <xsl:when test="contains...."> oder so?

wer hilft mir?

Merci im Voraus, Connie

  1. hallo connie,

    versuche folgendes (ist aber ungetestet):

    <xsl:if test="contains(.,'gesuchter inhalt')">
      <p><xsl;value-of select="."/></p></xsl:if>

    gruss vom bodense, michael

    1. hallo connie,

      diesmal getestet :-)

      xml:
      <?xml version="1.0" encoding="iso8859-1"?>
      <?xml-stylesheet type="text/xsl" href="suche.xsl"?>
      <Wurzel>
      <Element attribute="value">Connie</Element>
      <Element attribute="value">Konnie</Element>
      <Element attribute="value">Konie</Element>
      <Element attribute="value">Conny</Element>
      <Element attribute="value">Konny</Element>
      <Element>Connie</Element>
      </Wurzel>

      xsl:
      <?xml version="1.0" encoding="iso8859-1"?>
      <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:output method="html" version="1.0" encoding="iso8859-1" indent="yes"/>
      <xsl:template match="/">
      <xsl:for-each select="//Wurzel/Element[@attribute='value']">
       <xsl:value-of select="."/>
       <xsl:if test="contains(.,'Connie')"> :-)</xsl:if><br/>
      </xsl:for-each>
      </xsl:template>
      </xsl:stylesheet>

      gruss, michael

      1. hallo connie,

        diesmal getestet :-)

        Michael,

        wie schüttelst du das so schnell aus dem Ärmel?
        Ich gehe jetzt an das Probieren, das erste Beispiel von dir brachte in meinem Beispiel immer die Ausgabe "was anderes..." ;=)

        ich werde wohl noch ein wenig herumkauen drauf, denn ich möchte das ja auch verstehen, aber mal sehen, ich gebe Bescheid..

        erstmal Danke!

        Connie

      2. Michael,

        jetzt ist es so, wie ich es brauche. Ich musste nur noch schauen, wo ich das ansiedele im XLS und nun kann ich die weiteren Situationen auch  noch lösen...

        ist schon eine spannende Sache, merci vielmals!

        Connie

  2. Hallo Connie,

    ich bekomme nun die Abfrage einfach nicht hin,

    <xsl:template match="line[@type='cmd']"/>
    damit finde ich schon die Zeilen, die das Attribut "cmd" enthalten, aber wie frage ich ab?

    mit <xsl:when test="contains...."> oder so?

    Wenn du keinen besondern Grund hast @type='cmd' wirklich separat zu behandeln, ist es nicht unbeding nötig dafür ein eigenes Template zu erstellen.

    <xsl:template match="line">
     xsl:choose
      <xsl:when test="(@type = 'cms') and (contains(., '.SPC'))">
       <p> .....  </p>
      </xsl:when>
      xsl:otherwise
         was anderes
      </xsl:otherwise>
     </xsl:choose>
    </xsl:template>

    Grüße
    Thomas

  3. guten morgen connie,

    nun bin ich mal neugierig: was realisierst du mittels
    xsl? ich mache auch sehr viel mit xml und xsltm da diese
    technik meiner philosophie zu trennun von daten, struktur
    und darstellung entpricht:
    daten -> struktur -> darstellung
    = xml -> xsl -> css

    liebe gruesse, michael

    1. Hallo Michael,

      nun erstens möchte ich diese Standards verstehen, weil ich natürlich auch irgendwann alle meine Webseiten in XML / XHMTL haben möchte und zum anderen bin ich gerade beruflich dabei, mich in diese Thematik einzuarbeiten, denn die Produkte meines Arbeitgebers kühn & weyh Software Gmbh, (http://www.kwsoft.de) importieren und exportieren XML-Daten und ich möchte die Stylesheets, die wir default ausliefern, überarbeiten...

      Gruss, Connie

      nun bin ich mal neugierig: was realisierst du mittels
      xsl? ich mache auch sehr viel mit xml und xsltm da diese
      technik meiner philosophie zu trennun von daten, struktur
      und darstellung entpricht: