Es ist möglich, alle Zeichen mit Codepunkten über 255 durch "?" Verwenden von reinem XSLT 1.0 ohne Erweiterungen.
ein
<xsl:variable name="upto255">	

 !"#$%.../...ABC...abc...úûüýþÿ</xsl:variable>
, dessen Wert eine Zeichenfolge enthält alle Zeichen im Bereich 0..255, die in XML legal sind variabel definieren.
Dann nutzen Sie die Doppel übersetzen Trick:
<xsl:variable name="above255" select="translate($input, $upto255, '')"/>
Diese Variable ist ein String enthält alle Nicht-Latin-1-Zeichen in der Eingabezeichenfolge. Dann nutzen Sie die rekursive Template
<xsl:template name="pad">
<xsl:param name="char"/>
<xsl:param name="count"/>
<xsl:choose>
<xsl:when test="$count=0"/>
<xsl:otherwise>
<xsl:value-of select="$char"/>
<xsl:call-template name="pad">
<xsl:with-param name="char" select="$char"/>
<xsl:with-param name="count" select="$count - 1"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
eine Zeichenfolge der rechten Reihe von Fragezeichen zu erstellen:
<xsl:variable name="qqq">
<xsl:call-template name="pad">
<xsl:with-param name="char" select="'?'"/>
<xsl:with-param name="count" select="string-length($above255)"/>
</xsl:call-template>
</xsl:variable>
und führen Sie dann die Substitution:
<xsl:value-of select="translate($input, $above255, $qqq)"/>
Aber natürlich, da Sie sind In Java gibt es keine Entschuldigung dafür, all diesen XSLT 1.0-Code zu schreiben, der durch eine einzige Codezeile ersetzt werden könnte, wenn Sie zu einem XSLT 2.0-Prozessor wie Saxon wechseln würden.
Nun, es gibt nur ein paar ASCII-Zeichen. Wenn Sie wirklich nur an ASCII-Zeichen in XSLT 1.0 interessiert sind, erstellen Sie eine XML-Datei, die die 127 ASCII-Zeichen ihrem ASCII-Wert zuordnet und das mit Teilzeichenfolge verwendet. 'String-to-Codepoints' funktionieren jedoch mit Unicode und nicht nur mit ASCII, daher müsste Ihre Mapping-Datei ziemlich groß sein. –
Welchen XSLT-Prozessor verwenden Sie und in welcher Umgebung? Die meisten haben einen Mechanismus für Erweiterungen, möglicherweise können Sie dies zu Ihrem Vorteil nutzen. – Tomalak
Warum erklärst du nicht, was genau du zu erreichen versuchst und nicht, wie du denkst, dass es erreicht werden muss - siehe: http://xyproduktinfo.info/ –