Re: [xsl] Printing all child bachelor nodes

Subject: Re: [xsl] Printing all child bachelor nodes
From: andrew welch <andrew.j.welch@xxxxxxxxx>
Date: Thu, 9 Feb 2006 15:28:23 +0000
On 2/9/06, Douglas F Shearer <dougal.s@xxxxxxxxx> wrote:
>   Hi there.
>
>   I have the following snippet of XML and would like to extract the
> data given below using XSL...
>
> ********** XML ************
> <features>
>         <pool length="30" max-depth="160" min-depth="30" indoor="false"/>
>         <DVD/>
>         <beds twin="2" sofa-bed="1"/>
> </features>
>
> ******** REQUIRED OUTPUT ******
> pool: length: 30, max-depth:160, min-depth:30, indoor: false.
> DVD.
> beds: twin:2, sofa-bed:1
>
> **************************************
>
>   The main issue I am having is that the nodes themselves change
> (microwave instead of DVD etc). Basically I want to print out all of
> the elements within the features element, and their associated
> attributes.

<xsl:template match="features/*">
	<xsl:value-of select="local-name()"/>
	<xsl:for-each select="@*">
		<xsl:value-of select="concat(' ', name(), ':', .)"/>
		<xsl:if test="position() != last()">,</xsl:if>
	</xsl:for-each>
	<xsl:text>.</xsl:text>
</xsl:template>

Did you really want text output?  If so you will need to add CRs in
there, but I'm guess you'll be using HTML.  Also, beds didn't end with
a . which I'm also assuming was a typo.

cheers
andrew

Current Thread