xslt仕様を見ると、文字マップがドキュメント全体に適用されているようですが、特定のノードまたはテンプレート内で使用することも可能ですか?
例 : ルックアップ値を含むノードがありますが、別のテンプレートで使用すると、正規表現でうまく機能しない文字がノードに含まれている可能性があります。今のところ、うまく機能する置換機能を使用していますが、数文字後には、読み取りや維持がかなり難しくなります。だから私はこのようなものを持っている場合:
<xsl:variable name="myLookup" select="
replace(
replace(
replace(
replace(
string-join(/*/lookup/*, '|'),
'\[','\\['),
'\]','\\]'),
'\(','\\('),
'\)','\\)')
"/>
以下の架空の例のようなものを達成する方法はありますか?
<xsl:character-map name="escapechar">
<xsl:output-character character="[" string="\[" />
<xsl:output-character character="]" string="\]" />
<xsl:output-character character="(" string="\(" />
<xsl:output-character character=")" string="\)" />
</xsl:character-map>
<xsl:variable name="myLookup" select="string-join(/*/lookup/*, '|')" use-character-map="escapechar"/>
これがまったく機能していないことはわかっています。リクエストを少し視覚化するためです。
何か案が ?