我正在编写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:元素中设置变量名称(属性)
- 7. XSL创建元件,它在名称
- 8. 的xsl:内部XSL CDATA元素:元素
- 9. 通过查找元素名称区分大小写的搜索
- 10. 带有大写元素名称的Spring RestTemplate失败
- 11. 元名称不区分大小写
- 12. javascript中的名称大写
- 13. 将xsl应用于多个具有相同名称的元素?
- 14. 如何使用XSL/XSLT选择元素名称而不是值?
- 15. XSLT:差异的<xsl:元素名称= “一”>和<a>
- 16. 如何使用xsl获取元素名称及其值?
- 17. 使用XSLT/XSL解析具有相同名称的子元素
- 18. Xsl:输出元素和Xml:写入器
- 19. XSL组元素
- 20. 如何使用XmlWriter在元素中编写名称空间
- 21. 在xsl中显示来自相同元素名称的多个图像
- 22. 在XPath中获取父元素名称
- 23. 在jquery中按名称选择元素
- 24. 在rapply中获取元素名称
- 25. 在DocumentEvent中获取元素名称
- 26. 的XPath选择其中不大写字母开头的所有元素名称
- 27. 我想要XML元素中的原始大小写敏感标记名称。
- 28. 在ExpandableListView中获取子元素的名称或名称
- 29. Javascript - 从元素名称获取元素?
- 30. 设计名称大写
为什么这是一个社会维基? – 2009-12-09 10:54:49
错误地检查了它。 – Anirudh 2009-12-09 11:07:37