我有一些簡單的字符串後:是否XSLT來增加空間小寫字母后面的大寫字母
例:
DEFACTO,RightOfWay,HalfYearly等
我怎樣才能插入小寫和大寫之間的空格使用xslt 2.0或xslt 3.0中的函數。
慾望輸出:
既成,正確的方式,每半年
我有一些簡單的字符串後:是否XSLT來增加空間小寫字母后面的大寫字母
例:
DEFACTO,RightOfWay,HalfYearly等
我怎樣才能插入小寫和大寫之間的空格使用xslt 2.0或xslt 3.0中的函數。
慾望輸出:
既成,正確的方式,每半年
可以使用replace
功能:replace('DeFacto, RightOfWay, HalfYearly', '(\p{Ll})(\p{Lu})', '$1 $2')
給De Facto, Right Of Way, Half Yearly
。
使用提供的代碼我已經爲替換做了一個函數。
<xsl:function name="fn:InsertSpace">
<xsl:param name="Text" />
<xsl:value-of select="replace($Text, '(\p{Ll})(\p{Lu})', '$1 $2')"/>
</xsl:function>
請注意,要從函數返回字符串值,您應該使用'xsl:sequence'而不是'xsl:value-of',因爲後者返回文本節點。 –
好吧,我改變了代碼使用xsl:sequnce而不是xsl:value-of。 – DanielCSD
謝謝@Marin Honnen。那正是我所期待的。 – DanielCSD