Subject: [xsl] Re: Unique node and delimiter concatenation From: "Senthilkumaravelan K" <skumaravelan@xxxxxxxxxxxxxx> Date: Thu, 29 Mar 2007 15:23:49 -0700 |
Hi Sreeni, I am sure and it is logic issue and how I could check the second subsquent node value in the current content and introduce comma. Second value may or may not be there. How I could select and introuce "," based on the second sibling value. Let me know is thre any way I could resolve this. Regards, Senthil
Hi , I getting struck with border condition in the below xslt when i am trying to concatenate with "," "and " while finding unique node based on the condition. Can any one suggest me how I could over come this ?
My xml looks like <LINE_ITEMS> <LINE_ITEM> <PRODUCT_NUMBER>1</PRODUCT_NUMBER> <CUST_MSG>Y</CUST_MSG> </LINE_ITEM> <LINE_ITEM> <PRODUCT_NUMBER>1</PRODUCT_NUMBER> <CUST_MSG>Y</CUST_MSG> </LINE_ITEM> <LINE_ITEM> <PRODUCT_NUMBER>1</PRODUCT_NUMBER> <CUST_MSG>Y</CUST_MSG> </LINE_ITEM> <LINE_ITEM> <PRODUCT_NUMBER>2</PRODUCT_NUMBER> <CUST_MSG>N</CUST_MSG> </LINE_ITEM> </LINE_ITEMS> and my XSLT the same <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" /> <xsl:key name="getUniqueData" match="PRODUCT_NUMBER" use="."/> <xsl:template match="/"> <xsl:variable name="itemsOfthisProduct" select="//LINE_ITEM"/> <products> <xsl:for-each select="$itemsOfthisProduct/PRODUCT_NUMBER[generate-id() = generate-id(key('getUniqueData',.))]"> <xsl:variable name="warn" select="following-sibling::*[contains(name(), 'CUST_MSG')]" /> <xsl:if test="$warn='Y'"> <xsl:value-of select="."/> </xsl:if> <xsl:if test="position() < last()-1 and test=$warn='Y'"> <xsl:message>less than</xsl:message> <xsl:text>, </xsl:text></xsl:if> <xsl:if test="position()=last()-1 and test=$warn='Y'"><xsl:text>and </xsl:text></xsl:if> <xsl:if test="position()=last() and test=$warn='Y'"><xsl:text>.</xsl:text> </xsl:if> </xsl:for-each> </products> </xsl:template> </xsl:stylesheet>
My expected out is <products>1 and 2. depends on the CUST_MSG value I need to concatenate "," and respective locations.
Am facing some border condition it is failing to produce the desired output. Please help. Regards, Senthil
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Unique node and delimiter, Sreeni Yetchina -X \ | Thread | Re: [xsl] Re: Unique node and delim, Abel Braaksma |
Re: [xsl] concatenate multiple attr, Abel Braaksma | Date | Re: [xsl] Re: Unique node and delim, Abel Braaksma |
Month |