如果我看看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"/>
我知道這根本不起作用,它只是使我的請求有點可視化。
有什麼想法?