[xsl] Transform some attributes into HTML span elements with delimiters (specific format)

Subject: [xsl] Transform some attributes into HTML span elements with delimiters (specific format)
From: Philipp Kursawe <phil.kursawe@xxxxxxxxx>
Date: Thu, 27 May 2010 09:28:58 +0200
Hello,

I have this XML

<InspectionReportInput
 city="Some"
 firstName="Jon"
 lastName="Doe
 ...
 >
</InspectionReportInput>

and would like to get this (partial) HTML output:
<span id="firstName">Jon</span> <span id="lastName">Doe</span>, <span
id="city">Some</span>

So I want to put a space delimited between firstName and lastName and
after lastName a ",".
Currently my XSLT looks like this:

<xsl:call-template name="span"><xsl:with-param name="id"
select="//@firstName"></xsl:with-param></xsl:call-template>
      <xsl:call-template name="span"><xsl:with-param name="id"
select="//@lastName"></xsl:with-param></xsl:call-template>,
      <xsl:call-template name="span"><xsl:with-param name="id"
select="//@city"></xsl:with-param></xsl:call-template>

<xsl:template name="span" match="attribute::node()">
    <xsl:param name="id"></xsl:param>
    <xsl:element name="span"><xsl:attribute name="id"><xsl:value-of
select="name($id)"/></xsl:attribute><xsl:value-of
select="$id"/></xsl:element>
  </xsl:template>

As you can see its very verbose. I would like to have it a little less
verbose if possible. Something like this:
spans for the following "//@firstname //@lastName, //@city"
So I already give the charachters that should be emitted after the
template "span" is called.

Thanks!
Phil

Current Thread