Teilzeichenkette nach dem letzten Zeichen im xslt
Ich kann nicht finden, die genaue Antwort auf diese Frage, so hoffe ich, dass jemand mir hier helfen.
Ich habe einen string, und ich will, Holen Sie sich die Teilzeichenkette nach dem letzten '.'. Ich bin mit xslt 1.0.
Wie wird das gemacht? Das ist mein code.
<xsl:choose>
<xsl:otherwise>
<xsl:attribute name="class">method txt-align-left case-names</xsl:attribute> 
<xsl:value-of select="./@name"/> //this prints a string eg: 'something1.something2.something3'
</xsl:otherwise>
</xsl:choose>
Wenn ich fügen Sie den vorgeschlagenen code erhalte ich eine Fehlermeldung. "Das Parsen eines XSLT-Stylesheets ist fehlgeschlagen."
InformationsquelleAutor Newcoma | 2013-07-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich kann nicht denken, ein Weg, dies zu tun mit einem einzigen Ausdruck im XSLT 1.0 -, aber Sie können es mit einem rekursiven template:
Ergebnis:
<xsl:call-template name="GetLastSegment"><xsl:with-param name="value" select="@name" /><xsl:with-param name="separator" value="'.'" /></xsl:call-template>
Wenn Sie nicht bekommen kann, zu arbeiten, könnte Ihnen die Bearbeitung Ihrer Frage, die alle relevanten Teile Ihres XSLT?InformationsquelleAutor JLRishe
Habe ich das gleiche Verhalten mit einem xsl:function - Nutzung ist dann ein bisschen einfacher:
Und rufen Sie es direkt in eine Wert-von:
dp:substring-after-last(substring-after($value, $separator), $separator)"
Dank Hayra. Es war in der Tat ein copy/paste Fehler in der namespace-Präfix. Ich habe gerade aktualisiert, der code.
die namespace ns?
ns ist namespace. Siehe erste Zeile mit der Deklaration mit xmln:ns="yourcompany.com"
InformationsquelleAutor FiveO
Hier ist eine Lösung mit EXSLT str:tokenisierung:
(die
if
ist hier, weil, wenn Ihre Zeichenfolge endet mit dem separator, die tokenisierung nicht ein leerer string zurückgegeben)InformationsquelleAutor Thomas Lulé
Ich entschloss mich, es
Nicht brauchen, die
in der Vorlage nennen
InformationsquelleAutor Newcoma