|
Subject: Re: [xsl]Checking Value or element in XSL From: Mukul Gandhi <mukul_gandhi@xxxxxxxxx> Date: Thu, 18 Nov 2004 05:03:15 -0800 (PST) |
Hi Arul,
Here is a slightly modified XSL -
<xsl:for-each select="child::*">
<cs>
<xsl:attribute name="attribute">
<xsl:value-of select="name()"/>
</xsl:attribute>
<xsl:attribute name="value">
<xsl:choose>
<xsl:when test="normalize-space(text()) = ''">
<xsl:for-each select="child::*">
<xsl:value-of select="text()"/>
<xsl:if test="position() != last()">
<xsl:text> </xsl:text>
</xsl:if>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="text()"/>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</cs>
</xsl:for-each>
Please notice the use of normalize-space() function
(which makes all the difference).
This node (1)
<Name>
<FirstName>Arul</FirstName>
<LastName>Raj</LastName>
</Name>
is different from (2)
<Name><FirstName>Arul</FirstName><LastName>Raj</LastName></Name>
in case (1), a text node after <Name> is not empty;
because it has white characters(newline & blank
spaces).
Regards,
Mukul
--- Arulraj <p_arulraj@xxxxxxxxx> wrote:
> Hello,
>
> I have the following xml elements;
> <Person>
> <Num>1</Num>
> <Name>
> <FirstName>Arul</VorName>
> <LastName>Raj</NachName>
> </Name>
> </Person>
>
> I need the following output
>
> <cs attribute="Num" value= "1"/>
> <cs attribute="Name" value ="Arul Raj"/>
>
> I have used following XSLT.
>
> <xsl:for-each select="child::*">
> <cs>
> <xsl:attribute name="attribute">
> <xsl:value-of select="name()"/>
> </xsl:attribute>
> <xsl:attribute name="value">
> <xsl:choose>
> <xsl:when test="(text()='')">
> <xsl:for-each select="child::*">
> <xsl:value-of select="text()"/><xsl:text>
> </xsl:text>
> </xsl:for-each>
> </xsl:when>
> <xsl:otherwise>
> <xsl:value-of select="text()"/>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:attribute>
> </cs>
>
> </xsl:for-each>
>
> I am getting following output:
> <cs attribute="Num" value="1"/>
> <cs attribute="Name" value="
"/>
>
> How to solve this ?
>
> thanks
> regards,
> Arul
__________________________________
Do you Yahoo!?
Meet the all-new My Yahoo! - Try it today!
http://my.yahoo.com
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl]Checking Value or element in , Arulraj | Thread | Re: [xsl] Dynamic processing of xml, Alan Divorty |
| RE: [xsl] Difference in Xalan & Sax, Michael Kay | Date | Re: [xsl] XML, XST, and Javascript, ケンジイ ムヤモト |
| Month |