Subject: [xsl] Generate identifier From: "Vladimir Nesterovsky" <vladimir@xxxxxxxxxxxxxxxxxxxx> Date: Tue, 29 Dec 2009 07:13:58 -0800 |
Hello! I need to convert a string into an identifier. Earlier I was using the following function: <!-- Creates an normalized name for a specified name components. $component - name components to generate normalized name for. $default-name - a default name in case a name cannot be built. Returns a normalized name (upper case first). --> <xsl:function name="t:create-name" as="xs:string?"> <xsl:param name="components" as="xs:string*"/> <xsl:param name="default-name" as="xs:string?"/> <xsl:variable name="parts" as="xs:string*"> <xsl:for-each select="$components"> <xsl:analyze-string regex="(\p{{L}}|\d)+" flags="imx" select="."> <xsl:matching-substring> <xsl:sequence select="."/> </xsl:matching-substring> </xsl:analyze-string> </xsl:for-each> </xsl:variable> <xsl:choose> <xsl:when test="empty($parts)"> <xsl:sequence select="$default-name"/> </xsl:when> <xsl:otherwise> <xsl:sequence select=" string-join ( ( for $i in 1 to count($parts), $part in $parts[$i] return if ( ($i = 1) and ( for $c in substring($part, 1, 1) return ($c ge '0') and ($c le '9') ) ) then ( ($default-name, 'name')[1], upper-case($part) ) else ( upper-case($part) ) ), '-' )"/> </xsl:otherwise> </xsl:choose> </xsl:function> Now, I have to build a name with only containing [A-Za-z0-9] only. My problem is that I often see characters with modifiers like 00E0 C LATIN SMALL LETTER A WITH GRAVE 00E1 C! LATIN SMALL LETTER A WITH ACUTE 00E2 C" LATIN SMALL LETTER A WITH CIRCUMFLEX 00E3 C# LATIN SMALL LETTER A WITH TILDE 00E4 C$ LATIN SMALL LETTER A WITH DIAERESIS ... My questions: is it acceptable, from the perspective of a western language, to replace those characters with a character without modifier; is there a way to do this in xslt; any better option? Thanks -- Vladimir Nesterovsky http://www.nesterovsky-bros.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] URI Resolver and recoursi, Owen Rees | Thread | Re: [xsl] Generate identifier, G. Ken Holman |
[xsl] URI Resolver and recoursian, Brian Newman | Date | Re: [xsl] Generate identifier, G. Ken Holman |
Month |