Subject: Re: [xsl] Literal string question From: Stuart Brown <stuart.brown@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> Date: Wed, 02 Jan 2002 11:27:33 +0000 |
> > What I have in mind is to PULL the data from a specific field in my > XML document which has initials without a space between them. > > <CORPNAME>A.A. Peters</CORPNAME> > If all you want to do is select those elements whose string value contains a dot followed by anything other than a space, would this work? Although doubtless it could be done more efficiently... <xsl:template match="CORPNAME"> <!-- Assign value to variable with whitespace normalized --> <xsl:variable name="x" select="normalize-space(.)"/> <xsl:choose> <!-- If it contains '.' proceed with recursive template --> <xsl:when test="contains($x, '.')"> <xsl:call-template name="space-check"> <!-- Recursive template uses param of everything after the first '.' The space is concatenated to the end to ensure that if the string ends with '.' this is not reported as an initial --> <xsl:with-param name="y" select="concat(substring-after($x, '.'),' ')"/> </xsl:call-template> </xsl:when> <!-- Otherwise return no initials --> <xsl:otherwise> <name initials="false"><xsl:value-of select="."/></name> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="space-check"> <xsl:param name="y"/> <xsl:choose> <!-- If the param starts with a space, then this particular dot was not an initial. --> <xsl:when test="starts-with($y, ' ')"> <xsl:choose> <!-- If there are more occurrences of '.' then repeat procedure --> <xsl:when test="contains($y, '.')"> <xsl:call-template name="space-check"> <xsl:with-param name="y" select="substring-after($y, '.')"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <!-- No initials --> <name initials="false"><xsl:value-of select="."/></name> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise> <!-- If the param does not start with a space, then the original string contained initials --> <name initials="true"><xsl:value-of select="."/></name> </xsl:otherwise> </xsl:choose> </xsl:template> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Wishes for XSL revisions , Joerg Pietschmann | Thread | Re: [xsl] Literal string question, Wendell Piez |
RE: [xsl] Wishes for XSL revisions , Michael Kay | Date | Re: [xsl] Re: XPath incompatibiliti, Jeni Tennison |
Month |