我正在編寫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