RE: [xsl] creating a string of child node names

Subject: RE: [xsl] creating a string of child node names
From: Haydn Flower <Haydn.Flower@xxxxxxxxxxx>
Date: Wed, 3 Dec 2003 11:59:48 -0000
Thanks Manolis thats better than what i had , and to David's post below

Using My real file for some reason my list ended up ended up with 
 value="InvoiceNumber,,DespatchNoteNumber,,OrderNumber,,AccountNo,,"

maybe because I had children in my tags ?
<Invoice>
> 	<InvoiceNumber><child/></InvoiceNumber>
> 	<DespatchNoteNumber><child/><child/><DespatchNoteNumber>
> 	<OrderNumber />
> 	<AccountNo/>
> </Invoice>
> 



You don't need an explicit recursive template here, an alternative would be
<xsl:template match="Invoice">
<input name="X2H_VAR_NAMES">
<xsl:attribute name="value">
<xsl:for-each select="*">
<xsl:value-of select="name()"/>
<xsl:if test="position()&lt;last()">,</xsl:if>
</xsl:for-each>
</xsl:attribute>
</input>
</xsl:template>

-----Original Message-----
From: Manolis Mavrikis [mailto:M.Mavrikis@xxxxxxxx]
Sent: 03 December 2003 11:38
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] creating a string of child node names


Haydn,

I would try inside the matching template:

	<xsl:element name="input">
	  <xsl:attribute name="value">
	    <xsl:for-each select="*">
	    	<xsl:value-of select="name(.)"/>
	 	<xsl:if test="position() != last()">,</xsl:if>
	    </xsl:for-each>
	  </xsl:attribute>
	  <xsl:attribute name="type">hidden</xsl:attribute>
	</xsl:element>

or better (depending on what exactly you want to do)

   <xsl:variable name="value">
	<xsl:for-each select="*">
	  <xsl:value-of select="name(.)"/>
       	  <xsl:if test="position() != last()">,</xsl:if>
         </xsl:for-each>
     </xsl:variable>	
    <input name="X2H_VAR_NAMES111" value="{$value}" type="hidden"/>

Cheers,

Manolis
Haydn Flower wrote:
> I need to build up a string if child node names.
> so far I have 
> <xsl:template match="Invoice">
> 	<input name="X2H_VAR_NAMES" value="{name(./*)}" type="hidden"/>
> </xsl:template>
> 
> this is a sample of the xml file
> <Invoice>
> 	<InvoiceNumber/>
> 	<DespatchNoteNumber/>
> 	<OrderNumber />
> 	<AccountNo/>
> </Invoice>
> 
> my result only has 	<input name="X2H_VAR_NAMES" value="InvoiceNumber"
> type="hidden"/>
> 
> and I would like 	<input name="X2H_VAR_NAMES"
> value="InvoiceNumber,DespatchNoteNumber,OrderNumber,AccountNo"
> type="hidden"/>
> 
> Thank you for your help


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


******************************************************* 
This email has originated from Perwill plc (Registration No. 1906964) 
Office registered at: 13A Market Square, Alton, Hampshire, GU34 1UR, UK 
Tel: +44 (0)1420 545000 
Fax: +44 (0)1420 545001 
www.perwill.com 
******************************************************* 
Privileged, confidential and/or copyright information may be contained 
in this email, and is only for the use of the intended addressee. 
To copy, forward, disclose or otherwise use it in any way if you are not 
the intended recipient or responsible for delivering to him/her is
prohibited.
If you receive this email by mistake, please advise the sender immediately, 
by using the reply facility in your email software.

We may monitor the content of emails sent and received via our network 
for the purposes of ensuring compliance with policies and procedures. 
This message is subject to and does not create or vary any contractual 
relationships between Perwill plc and the recipient. 
******************************************************* 
Any opinions expressed in the email are those of the sender and not 
necessarily of Perwill plc.
******************************************************* 
This email has been scanned for known viruses using 
Sophos MailMonitor 
******************************************************* 



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread