첫 번째 문자로 요소를 그룹화하고 싶지만 다른 문자는 동일하게 간주해야합니다. A와 Ä (및 a와 ä)는 모두 같아야합니다.XSLT : 그룹화 키로 사용되는 문자 비교
출처 :
<root>
<entry name="Aa" />
<entry name="Ab" />
<entry name="Äa" />
<entry name="Ac" />
<entry name="Ba" />
</root>
변환 :
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output indent="yes"/>
<xsl:template match="root">
<root>
<xsl:for-each-group select="entry" group-by="upper-case(substring(@name,1,1))">
<key><xsl:value-of select="current-grouping-key()"/></key>
</xsl:for-each-group>
</root>
</xsl:template>
</xsl:stylesheet>
지금 결과는 :
<root>
<key>A</key>
<key>Ä</key>
<key>B</key>
</root>
내가 원하는만큼 결과는 그것이 가지고 :
<root>
<key>A</key>
<key>B</key>
</root>
,536,
"Bb"를 제외한 모든 항목은 첫 번째 그룹에 있어야합니다.
성공적인 성공의 열쇠는 A, A 및 A를 동일하게 취급한다는 것입니다 (이는 일부 독일 정렬/정렬 규칙에 해당됨). 하지만 그것을 처리 할 수있는 xpath 함수를 찾지 못했습니다.
하나의 해결책을 찾았지만 더 똑똑하고 깨끗한 해결책이 있습니까? ' – topskip