如何使用XSLT将string转换为大写或小写?

如何在XSL中进行大小写转换?

<xsl:variable name="upper">UPPER CASE</xsl:variable> <xsl:variable name="lower" select="???"/> 

在XSLT 1.0中, upper-case()lower-case()函数不可用。 如果您使用的是1.0样式表,大小写转换的常用方法是translate()

 <xsl:variable name="smallcase" select="'abcdefghijklmnopqrstuvwxyz'" /> <xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" /> <xsl:template match="/"> <xsl:value-of select="translate(doc, $smallcase, $uppercase)" /> </xsl:template> 

XSLT 2.0具有upper-case()lower-case()函数。 对于XSLT 1.0,可以使用translate()

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

.NET XSLT实现允许在样式表中编写自定义的托pipe函数。 对于小写()它可以是:

 <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:utils="urn:myExtension" exclude-result-prefixes="msxsl"> <xsl:output method="xml" indent="yes"/> <msxsl:script implements-prefix="utils" language="C#"> <![CDATA[ public string ToLower(string stringValue) { string result = String.Empty; if(!String.IsNullOrEmpty(stringValue)) { result = stringValue.ToLower(); } return result; } ]]> </msxsl:script> <!-- using of our custom function --> <lowercaseValue> <xsl:value-of select="utils:ToLower($myParam)"/> </lowercaseValue> 

假设,这可以是缓慢的,但仍然可以接受。

不要忘记启用embedded式脚本支持变换:

 // Create the XsltSettings object with script enabled. XsltSettings xsltSettings = new XsltSettings(false, true); XslCompiledTransform xslt = new XslCompiledTransform(); // Load stylesheet xslt.Load(xsltPath, xsltSettings, new XmlUrlResolver()); 
 <xsl:variable name="upper">UPPER CASE</xsl:variable> <xsl:variable name="lower" select="translate($upper,'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')"/> <xsl:value-of select ="$lower"/> //displays UPPER CASE as upper case 

大写(string)和小写(string)

对于ANSI字符编码:

  translate(//variable, 'ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞŸŽŠŒ', 'abcdefghijklmnopqrstuvwxyzàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿžšœ') 
Interesting Posts