XSLT Überprüfen und Verketten Mehrerer Variablen
Habe ich zu überprüfen und verketten mehrerer Variablen nach der überprüfung.
<xsl:variable name="val1" select="//xpath"/>
<xsl:variable name="val2" select="//xpath"/>
<xsl:variable name="val3" select="//xpath"/>
<xsl:variable name="val4" select="//xpath"/>
<xsl:variable name="val5" select="//xpath"/>
Gibt es eine Vorlage für diese oder jemand kann mir helfen, dies zu tun.
Update aus den Kommentaren
Ich will verketten fünf Werte wie diese: Address, Address1, City, State, Zipcode
. Wenn Address
fehlt, die ich ll bekommen eine Ausgabe wie diese ", address1, city, state, zipcode
". Ich möchte, um loszuwerden, das erste Komma.
<xsl:variable name="__add" select="translate(//*/text()[contains(., 'Address')]/following::td[contains(@class, 'fnt')][1], ',', '')"/>
<xsl:variable name="address">
<xsl:for-each select="$__add | //*/text()[contains(., 'City')]/following::td[contains(@class, 'fnt')][1] | //*/text()[contains(., 'State')]/following::td[contains(@class, 'fnt')][1] | //*/text()[contains(., 'Pincode')]/following::td[contains(@class, 'fnt')][1]">
<xsl:value-of select="concat(substring(', ', 1 div (position()!=1)), .)"/>
</xsl:for-each>
</xsl:variable>
Welche Art von Validierung redest du hier? Normalerweise Validierung wird etwas angewendet, um die input-Dokuments, bevor Sie starten, ausführen der transformation.
InformationsquelleAutor Kaartz | 2011-02-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
In XSLT 2.0:
string-join((Address, Address1, City, State, Zipcode), ',')
In XSLT 1.0, sofern Sie die Ausgabe der Ergebnisse in dokumentreihenfolge:
Wenn nicht im Dokument, um dann wie so viele Dinge in XSLT 1.0, es ist wohl eher mühsam.
InformationsquelleAutor Michael Kay
XSLT hat eine Funktion
dass Sie verwenden können, in der
select=
Attribut einer anderen Variablenoder irgendwo ein Attributwert-template erlaubt ist (in geschweiften Klammern).
Was wollen Sie tun, wenn eines oder mehrere ist/sind, sind nicht gültig? Wir brauchen mehr Informationen darüber, was Sie erreichen möchten.
Zum Beispiel: ich will zum verketten der vier Werte wie diese: Adresse, Adresse1, Stadt, Staat, Postleitzahl. Wenn die Adresse fehlt, die ich ll bekommen eine Ausgabe wie diese ", adresse1, Stadt, Staat, Postleitzahl". Ich möchte, um loszuwerden, das erste Komma.
xsl:variable/@select
kann nicht sein, eine AVT. Müsste dynamischer XPath-Auswertung...InformationsquelleAutor Jim Garrison
Einer XSLT 1.0-Lösung, die Erhaltung der Ausdruck Bestellung (
xsl:sort
Unterricht) und mit Becker ' s Methode (substring()
zweites argument):Es ist ein Schmerz, dass Sie nicht verwenden können XSLT 2.0... Schauen Sie, wie einfach!
Hinweis: XPath 2.0-Sequenz die implizite Reihenfolge der Konstruktion. Da XSLT 2.0
xsl:value-of
Unterricht behandeln Sequenz, gibt es jetzt eine@separator
.Obwohl die Erhaltung der Ordnung ist manchmal ganz praktisch.
Vielleicht. Beachten Sie aber, dass es einige nutzen dieses idiom auch hier SO.
Ich selbst bevorzuge nicht zu verwenden, OB-Methode. Natürlich, ich kann nicht sagen, dass es falsch ist, es zu benutzen 🙂
Oh! Etwa, dass ich völlig einverstanden. Es war nur als illustration... Obwohl in einem XPath 1.0 nur die Umwelt, es könnte nützlich sein
InformationsquelleAutor
Werden können, dies kann helful:
Angewendet XML:
Ergebnis:
Und zu diesem XML:
Ergebnis:
InformationsquelleAutor Flack