Inhalt eines Elementes abfragen und davon abhängig formatieren
Connie
- xsl
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
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
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
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
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
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
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
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: