XSL 변환을 쓰고 있는데, 소스에 "title"같은 요소가 있습니다. 대상 XML에는 "제목"이 포함되어야합니다. XSL에서 문자열의 첫 글자를 대문자로 쓰는 방법이 있습니까?XSL에서 요소 이름을 대문자로 사용하십시오.
3
A
답변
8
는 XSL을 사용하여 새 요소를 만들 수에 따라 : 요소 당신은 아마 할 것 인 무엇인가 당신이 XSLT1.0를 사용하는 경우이
<xsl:template match="*">
<xsl:element name="{concat(upper-case(substring(name(), 1, 1)), substring(name(), 2))}">
<xsl:value-of select="." />
</xsl:element>
</xsl:template>
처럼, 당신은 대문자 기능을 사용할 수 없습니다. 대신, 기능을 번역 성가신 와 메이크업해야 할 것
<xsl:element name="{concat(translate(substring(name(), 1, 1), 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'), substring(name(), 2))}">
+1
'translate'는 비 라틴 문자를 사용하는 태그 이름에 대해 매우 귀찮습니다 :-) – Joey
1
2
클리너 : 기존 라이브러리 사용 FunctX XSLT http://www.xsltfunctions.com/ 함수를 활용 최초있다()를 http://www.xsltfunctions.com/xsl/functx_capitalize-first.html
필요가 없습니다 것은 재발견 모든 XSLT의 휠, lib를 어딘가에 붙이고 xsl : 그것을 포함하십시오.
0
다음은 ASCII 문장에서 CamelCase 이름을 만드는 순수 XLST1 템플릿입니다.
<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에서 namespaced 요소 이름을 테스트하는 방법
- 2. SQL Server 2008 키워드를 대문자로 사용하십시오.
- 3. 클래스의 생성자 이름을 대문자로 표시해야합니까?
- 4. 사람들의 이름을 정확하게 대문자로 바꿔달라고 제안하십시오.
- 5. 얼랭 - 모듈 이름을 대문자로 시작할 수 있습니까?
- 6. 대문자로 이름이없는 모든 테이블 이름을 선택하는 쿼리
- 7. asp : hiddenfield에서 다른 이름을 사용하십시오.
- 8. 앵커 내부에서 데이터베이스 열 이름을 직접 사용하십시오.
- 9. 대문자로 소문자 구부림
- 10. css : 대문자로 된 대문자 텍스트를 대문자로 변환
- 11. ColdFusion에서 쿼리 열 이름을 대문자로 변환하지 못하게하려면 어떻게해야합니까?
- 12. css 및 html의 경우 대문자로 셀렉터의 이름을 사용해야합니까?
- 13. XSL에서 문자의 악센트를 제거하려면 어떻게합니까?
- 14. xsl에서 속성을 정렬하는 방법
- 15. XSL에서 체크 수행하기
- 16. XSL에서 문자열 표현식을 평가하십시오.
- 17. XSL에서 특수 문자 사용
- 18. jquery로 xsl에서 검색하는 방법
- 19. xsl에서 중복 제거
- 20. XSL에서 날짜순 정렬
- 21. XML/XSL에서 HTML로 테이블
- 22. xsl에서 PHP 배열
- 23. XSL에서 AJAX 사용을위한 버튼
- 24. XSD 요소 이름을 영어로 번역하십시오.
- 25. XSL에서 그룹당 최대 값 합계
- 26. xsl에서 드롭 다운 값 선택
- 27. 앵커가 xsl에서 작동하는 방법은 무엇입니까?
- 28. Safari가 XSL에서 HTML을 처리하지 않습니다.
- 29. 서적 제목은 대문자로 표기하지만 서적 제목은 대문자로 표기하지 마십시오.
- 30. 대문자로 텍스트를 에코하려면 어떻게합니까?
왜이 커뮤니티 위키입니까? –
실수로 확인했습니다. – Anirudh