This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
A simple solution (Was: Re: One for tomorrow :-) )
- To: daniel dot newman at bis-web dot net
- Subject: [xsl] A simple solution (Was: Re: One for tomorrow :-) )
- From: Dimitre Novatchev <dnovatchev at yahoo dot com>
- Date: Tue, 3 Jul 2001 12:17:19 -0700 (PDT)
- Cc: xsl-list at lists dot mulberrytech dot com
- Reply-To: xsl-list at lists dot mulberrytech dot com
Daniel Newman wrote:
> My XML (I know you've all already got it :), is:
>
> <Item id="2">
> <HIN>G0200328400</HIN>
> <PostCode>EC2A 1BR</PostCode>
> <NameAddress1>SMITH & WILLIAMSON NOMINEES</NameAddress1>
> <NameAddress2>LIMITED <CH>,</NameAddress2>
> <NameAddress3>10 ACACIA AVENUE</NameAddress3>
> <NameAddress4>HUTTINGDON HILL</NameAddress4>
> <NameAddress5>LONDON</NameAddress5>
> <NameAddress6/>
> <NameAddress7/>
> </Item>
>
> And my problem is, that I want to display NameAddress1, and also need to
> concat all following Nodes that end in a comma. So I need to do a:
Hi Daniel,
Actually, it is quite simple -- do note the XPath expression for all "following
Nodes" (in this case following-sibling::*) the text of which ends in a comma -- this
uses a combnation of the substring() and string-length() functions.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="/Item/NameAddress1">
<xsl:value-of select="."/>
<xsl:for-each
select="following-sibling::*[substring(.,string-length(.))=',']">
<xsl:value-of select="."/>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Hope this helped.
Cheers,
Dimitre Novatchev.
__________________________________________________
Do You Yahoo!?
Get personalized email addresses from Yahoo! Mail
http://personal.mail.yahoo.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list