|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: change a list of attribute name
Hello.
Xiaocun Xu wrote:
> I have a header which consisted of normal names such
> as "Last Name". For each of these, I would like to
> replace it with a valid XML attribute name such as
> LastName. What would be the best way to do it?
You may define a recursive template like this:
<xsl:template name="DelSpaces">
<xsl:param name="source"/>
<xsl:choose>
<xsl:when test="not(contains($source,' '))">
<xsl:value-of select="$source"/>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="DelSpaces">
<xsl:with-param name="source"
select="concat(substring-before($source,' '),
substring-after($source,' '))"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
and use it in the following way:
<xsl:variable name="attrName">
<xsl:call-template name="DelSpaces">
<xsl:with-param name="source" select="..."/>
</xsl:call-template>
</xsl:variable>
<xsl:attribute name="{$attrName}">...</xsl:attribute>
But you should make sure that the value substituted for "source"
does not contain (non-space) characters that are not allowed
in attribute names.
--
Alexander E. Gutman
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








