[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Constructing complex xs:string in variable
And to explain why David's version works: value-of and xsl:text both result in text nodes, not strings. So a sequence of xsl:value-of and xsl:text instructions will result in a sequence of text nodes when are then converted to strings resulting in a sequence of strings. Wrapping everything in a single xsl:value-of results in a single text node and thus a single string. Looking at this now I realize it never occurred to me that xsl:value-of can have content and not just a @select attribute. Learn something new every day. Cheers, E. -- Eliot Kimber http://contrext.com o;?On 10/9/19, 8:30 AM, "David Carlisle d.p.carlisle@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: On Wed, 9 Oct 2019 at 14:27, Christian Roth mulberrytech-lists@xxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > > [re-sending - initial one didn't make it to the listb&?] > > Hello, > > I'm using XSLT2. > > I need to construct a complex string in a variable. I wanted to use XSLT instructions for this, not pure XPath. I'm struggling with coercing the result of the <xsl:variable> body to a single xs:string, not a sequence of xs:string: > > > <xsl:variable name="var" as="xs:string"> > <xsl:text>prefix</xsl:text> > <xsl:value-of select="'part1'"/> > <!-- follows more complex code producing further fragments of desired result string --> > </xsl:variable> > > > This gives me the error message (Saxon HE 9): "A sequence of more than one item is not allowed as the value of variable $var ("prefix", "part1")" > > Of course, I could declare the variable as xs:string+ and then use string-join( $var, '' ) on every use of $var, or create another variable that holds the concatenated result of $var. > <xsl:variable name="var" as="xs:string"> <xsl:value-of> <xsl:text>prefix</xsl:text> <xsl:value-of select="'part1'"/> <!-- follows more complex code producing further fragments of desired result string --> </xsl:value-of> </xsl:variable> David
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|