Veränderung des Inhalts?
Gunnar Bittersmann
- xsl
0 dedlfix0 Thomas J.S.
Hi (Thomas?) ;-),
Ist mit XSLT die Veränderung des Inhalts von Elementen möglich? Also z.B. wenn Rosis Nummer im XML-Dokument als <phone>+49 89 32168</phone>
steht, dass sie als (089) 32168
ausgegeben wird?
Live long and prosper,
Gunnar
echo $begrüßung;
Ist mit XSLT die Veränderung des Inhalts von Elementen möglich? Also z.B. wenn Rosis Nummer im XML-Dokument als
<phone>+49 89 32168</phone>
steht, dass sie als(089) 32168
ausgegeben wird?
Es gibt da einige XPath-Funktionen, mit denen man Strings auseinandernehmen (z.B: substring*) und wieder zusammensetzen (z.B. concat) kann.
echo "$verabschiedung $name";
Hi (Thomas?) ;-),
Hallo Gunnar ;-)
Ist mit XSLT die Veränderung des Inhalts von Elementen möglich? Also z.B. wenn Rosis Nummer im XML-Dokument als
<phone>+49 89 32168</phone>
steht, dass sie als(089) 32168
ausgegeben wird?
Die Antwort hast du ja schon bekommen ;-)
concat(substring(.,2,2), ' (0', substring(.,5,2), ....) - was aber nicht so toll ist, wegen der Nummer der Region - oder mit rekursiven Template auf die Leerzeichen.
Live long and prosper,
Charlie: Where am I, Purgatory?
Wesley: Worse, Texas!
(Morgan Freeman (W.) & Chris Rock (C.) in Nurse Betty)
Grüße
Thomas
oder mit rekursiven Template auf die Leerzeichen.
Ich verzichte auf die Klammern um die Vorwahl. Dann tut es:
<xsl:choose>
<xsl:when test="substring-before(rdf:value, ' ') = '+49'">
<xsl:text>0</xsl:text>
<xsl:value-of select="substring-after(rdf:value, ' ')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="rdf:value"/>
</xsl:otherwise>
</xsl:choose>
Danke euch beiden.
Live long and prosper,
Gunnar
PS. Mit dem <phone>
hatte ich vereinfacht; tatsächlich sind die Daten in RDF/XML im vcard-Vokabular.
Die Angabe des rdf:value
-Attributs mit Namensraum-Präfix ist in XSLT so OK?
echo $begrüßung;
Ich verzichte auf die Klammern um die Vorwahl.
Die bekommen wir auch noch hin:
<xsl:choose>
<xsl:when test="substring-before(rdf:value, ' ') = '+49'">
<xsl:value-of select="concat('(0', substring-before(substring-after(rdf:value, ' '), ' '), ')')"/>
<xsl:value-of select="substring-after(substring-after(rdf:value, ' '), ' ')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="rdf:value"/>
</xsl:otherwise>
</xsl:choose>
echo "$verabschiedung $name";
Hallo,
Die Angabe des
rdf:value
-Attributs mit Namensraum-Präfix ist in XSLT so OK?
Ja, ist sogar notwendig. Du musst natürlich den Namesraum für rdf im xsl:stylesheet auch angeben.
Grüße
Thomas