XSLT 样式表:将文本更改为大写

发布于 2024-07-29 07:59:56 字数 66 浏览 2 评论 0原文

我正在使用 XSLT 样式表从 XML 文件创建 Excel 文档。 我输入的值之一想要显示为大写。 这怎么可能?

I am using an XSLT stylesheet to create an Excel document from an XML file. One of the values that I am pulling in I want to display as upper case. How is this possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

随心而道 2024-08-05 07:59:56

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>

XSLT 2.0 has fn:upper-case() and fn:lower-case() functions. However in case you are using of XSLT 1.0, you can use 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>
躲猫猫 2024-08-05 07:59:56

您可以在 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 函数参考页

You can use the translate() function in XSLT 1.0:

<xsl:value-of select="translate(//some-xpath,
                                'abcdefghijklmnopqrstuvwxyz',
                                'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" />

If you're lucky enough to have access to XSLT 2.0, you can use the upper-case() function:

<xsl:value-of select="upper-case(//some-xpath)"/>

See the XPath function reference page for more details.

北笙凉宸 2024-08-05 07:59:56

XPath 2.0 有 fn:upper-case(),它还进行 Unicode 正确的大小写映射。

XPath 2.0 has fn:upper-case(), which also does Unicode correct case mappings.

献世佛 2024-08-05 07:59:56

使用这样的程序集:

<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 中使用。

Use an Assembly like this:

<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>

Call it as follows: select="user:ToUpper(//root/path)"

This can be used in 1.0 or 2.0.

无所谓啦 2024-08-05 07:59:56

实现大小写转换的最简单、最简洁的方法是通过 CSS。

构建一个类,例如:

.upper { text-transform: uppercase; }

然后将该类用作跨度类:

<span class="upper">
    <xsl:value-of select="myTextField" />
</span>

就是这样:)

您还可以使用其他转换:

text-transform:  capitalize | uppercase | lowercase | none | inherit

The easiest and cleanest way to achieve case transforms is by the means of CSS.

build a class, like:

.upper { text-transform: uppercase; }

then use the class as span class:

<span class="upper">
    <xsl:value-of select="myTextField" />
</span>

that's it :)

You can also use other transforms:

text-transform:  capitalize | uppercase | lowercase | none | inherit
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文