xsl:character-map zum ersetzen von Sonderzeichen
Gegeben ein element mit dem Wert:
<xml_element>Distrib = SU & Prem &lt;&gt; 0</xml_element>
Muss ich drehen &lt;
oder &gt;
in <
oder >
denn ein downstream-app erfordert es in diesem format über die gesamte XML-Dokument. Ich bräuchte dies für Anführungszeichen und Apostrophe zu. Ich bin tryinging eine Charakter-Karte, die in XSLT 2.0.
<xsl:character-map name="specialchar">
<xsl:output-character character="'" string="&apos;" />
<xsl:output-character character=""" string="&quot;" />
<xsl:output-character character=">" string="&gt;" />
</xsl:character-map>
- Sehr gute Frage (+1). Siehe meine Antwort für die Erklärung und für eine komplette Lösung. 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
<xsl:character-map>
- Anweisung kann verwendet werden, zu serialisieren eines einzelnes Zeichen auf eine beliebige Zeichenkette. Doch dieses problem erfordert mehr als einen Charakter (ein kaufmännisches und-Zeichen, gefolgt durch ein anderes Zeichen ersetzt werden.<xsl:character-map>
kann nicht verwendet werden, um solche Probleme zu lösen.Hier ist eine Lösung für dieses problem, mit der XPath-2.0
replace()
Funktion:wenn diese transformation angewendet wird, auf das folgende XML-Dokument:
das erwartete Ergebnis produziert wird: