我正在使用XSLT样式表从XML文件创建Excel文档。我要提取的其中一个值我希望显示为大写。这怎么可能?
答案 0 :(得分:55)
XSLT 2.0有fn:upper-case()和fn:lower-case()函数。但是,如果您使用的是XSLT 1.0,则可以使用translate():
<xsl:template match="/">
<xsl:variable name="smallcase" select="'abcdefghijklmnopqrstuvwxyz'" />
<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
<xsl:value-of select="translate(doc, $smallcase, $uppercase)" />
</xsl:template>
答案 1 :(得分:18)
您可以在XSLT 1.0中使用translate()
函数:
<xsl:value-of select="translate(//some-xpath,
'abcdefghijklmnopqrstuvwxyz',
'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" />
如果您足够幸运能够访问XSLT 2.0,则可以使用upper-case()
函数:
<xsl:value-of select="upper-case(//some-xpath)"/>
有关详细信息,请参阅XPath function reference page。
答案 2 :(得分:3)
XPath 2.0具有fn:upper-case()
,它也可以执行Unicode正确的大小写映射。
答案 3 :(得分:2)
使用这样的程序集:
<msxsl:script implements-prefix="user" language="C#">
<!--{%assembly%}-->
<![CDATA[
public string ToUpper(string stringValue)
{
string result = String.Empty;
if(!String.IsNullOrEmpty(stringValue))
{
result = stringValue.ToUpper();
}
return result;
}
]]>
</msxsl:script>
按以下方式调用:select="user:ToUpper(//root/path)"
这可以在1.0或2.0中使用。
答案 4 :(得分:-7)
实现案例转换的最简单,最简洁的方法是使用CSS。
建立一个类,如:
.upper { text-transform: uppercase; }
然后将该类用作span类:
<span class="upper">
<xsl:value-of select="myTextField" />
</span>
就是这样:))
您还可以使用其他变换:
text-transform: capitalize | uppercase | lowercase | none | inherit