gpt4 book ai didi

string - 如何在XSLT中将字符串格式化为Pascal大小写?

转载 作者:行者123 更新时间:2023-12-04 03:05:54 24 4
gpt4 key购买 nike

我正在尝试在XSLT中格式化字符串,该字符串需要以pascal大小写,以适合与我一起使用的应用程序使用。

例如:

this_text 将变为 ThisText
this_long_text 将变为 ThisLongText

是否可以在将输入发送给格式的地方进行设置,而不必多次重新创建格式?

最佳答案

此转换:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>

<xsl:variable name="vLower" select=
"'abcdefghijklmnopqrstuvwxyz'"/>

<xsl:variable name="vUpper" select=
"'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>

<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>

<xsl:template match="text()">
<xsl:call-template name="Pascalize">
<xsl:with-param name="pText" select="concat(., '_')"/>
</xsl:call-template>
</xsl:template>

<xsl:template name="Pascalize">
<xsl:param name="pText"/>

<xsl:if test="$pText">
<xsl:value-of select=
"translate(substring($pText,1,1), $vLower, $vUpper)"/>

<xsl:value-of select="substring-before(substring($pText,2), '_')"/>

<xsl:call-template name="Pascalize">
<xsl:with-param name="pText"
select="substring-after(substring($pText,2), '_')"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

应用于此XML文档时的 :
<t>
<a>this_text</a>
<b>this_long_text</b>
</t>

产生所需的结果:
<t>
<a>ThisText</a>
<b>ThisLongText</b>
</t>

顺便说一句,这是camelCase,这是PascalCase

关于string - 如何在XSLT中将字符串格式化为Pascal大小写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2647327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com