xsl-list
[Top] [All Lists]

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

2010-05-27 02:29:37
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

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--