Re: [xsl] Flatten a sequence to a string in xslt 2.0

Subject: Re: [xsl] Flatten a sequence to a string in xslt 2.0
From: David Carlisle <davidc@xxxxxxxxx>
Date: Mon, 29 Mar 2004 17:22:26 +0100
  <xsl:variable name="foo" select="/root/node"/>

  I get a sequence of two nodes rather than the string value of the first
  node (as in xslt 1.0)

You'd get two nodes in XSLT1 as well.

> how do I get from the sequence to a string?
it depends what string you want to get.
string($foo[1])
is one way, that will get "hello"

alternatively you can use value of which can produce a string by
concatenating space separated string values of each item:
so "hello world"

<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="2.0"
>

<xsl:output method="xml" encoding="utf-8"/>

  <xsl:variable name="foo" select="/root/node"/>

<xsl:template match="/">
[<xsl:copy-of select="string($foo[1])"/>]
[<xsl:value-of select="$foo"/>]
</xsl:template>

</xsl:stylesheet>


$ saxon7 string.xml string.xsl
<?xml version="1.0" encoding="utf-8"?>
[hello]
[hello world]


David

-- 
http://www.dcarlisle.demon.co.uk/matthew

________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

Current Thread