我正在编写XSL转换,并且我的源代码中包含像这样的元素 - “title”。目标xml应该包含“标题”。有没有办法在XSL中使用字符串的第一个字母?在XSL中大写元素名称
3
A
回答
8
继从约翰尼斯说,创建使用XSL一个新的元素:元素你可能会做一些事情这样
<xsl:template match="*">
<xsl:element name="{concat(upper-case(substring(name(), 1, 1)), substring(name(), 2))}">
<xsl:value-of select="." />
</xsl:element>
</xsl:template>
如果您正在使用XSLT1.0,你将无法使用大写功能。相反,你将有繁琐使-做翻译功能
<xsl:element name="{concat(translate(substring(name(), 1, 1), 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'), substring(name(), 2))}">
+1
对于使用非拉丁字符的标签名称,“translate”将非常麻烦,尽管:-) – Joey 2009-12-09 11:12:33
1
2
清洁:使用现有库:FunctX XSLT http://www.xsltfunctions.com/有一个功能,利用一()http://www.xsltfunctions.com/xsl/functx_capitalize-first.html
无需重塑在每个XSLT中的轮子,将lib放在某个地方,然后包含它。
0
这是一个纯粹的XLST1模板,可以从ASCII句子创建CamelCase名称。
<xsl:template name="Capitalize">
<xsl:param name="word" select="''"/>
<xsl:value-of select="concat(
translate(substring($word, 1, 1),
'abcdefghijklmnopqrstuvwxyz',
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'),
translate(substring($word, 2),
'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'abcdefghijklmnopqrstuvwxyz'))"/>
</xsl:template>
<xsl:template name="CamelCase-recursion">
<xsl:param name="sentence" select="''"/>
<xsl:if test="$sentence != ''">
<xsl:call-template name="Capitalize">
<xsl:with-param name="word" select="substring-before(concat($sentence, ' '), ' ')"/>
</xsl:call-template>
<xsl:call-template name="CamelCase-recursion">
<xsl:with-param name="sentence" select="substring-after($sentence, ' ')"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name="CamelCase">
<xsl:param name="sentence" select="''"/>
<xsl:call-template name="CamelCase-recursion">
<xsl:with-param name="sentence" select="normalize-space(translate($sentence, ":;,'()_", ' '))"/>
</xsl:call-template>
</xsl:template>
相关问题
- 1. XSL值作为XSL元素名称
- 2. 我如何测试xsl中的名称空间元素名称
- 3. XSL添加新元素名称空间
- 4. 使用XSL将所有元素名称转换为小写?
- 5. 嵌套XSL元素:嵌套的xsl:如果在XSL:模板名称=“XXXX”
- 6. 的xsl:内部XSL CDATA元素:元素
- 7. 通过查找元素名称区分大小写的搜索
- 8. 如何使用XSL/XSLT选择元素名称而不是值?
- 9. 将xsl应用于多个具有相同名称的元素?
- 10. 如何使用XmlWriter在元素中编写名称空间
- 11. XSL组元素
- 12. 在xsl中显示来自相同元素名称的多个图像
- 13. 在jquery中按名称选择元素
- 14. 在XPath中获取父元素名称
- 15. 在DocumentEvent中获取元素名称
- 16. 如果存在具有相同名称的子元素,如何将子元素转换为大写字母?
- 17. 无界XML元素名称/值对,而不重复XSLT中的元素名称
- 18. 获取元素名称
- 19. 确定元素名称
- 20. 修改XML元素名称
- 21. 元素(名称)返回null
- 22. OData标准元素名称
- 23. 绑定元素名称
- 24. 用大写和小写名称相同
- 25. 对象属性名称正在大写
- 26. 大写名称正确在SQL
- 27. Ruby中的非大写常数名称
- 28. BCEL - 获取类名称,元素名称和方法名称
- 29. XSL显示属性名称
- 30. 获取C#中Focused元素的名称#
为什么这是一个社会维基? – 2009-12-09 10:54:49
错误地检查了它。 – Anirudh 2009-12-09 11:07:37