[xsl] [XSLT 2.0] Using insert-before() to insert a non-atomic value

Subject: [xsl] [XSLT 2.0] Using insert-before() to insert a non-atomic value
From: "Roger L. Costello" <costello@xxxxxxxxx>
Date: Fri, 27 Feb 2004 17:12:15 -0500
Hi Folks,

I have two questions regarding using the insert-before function to
insert a node into a sequence of nodes: 

Consider this XML document:

<?xml version="1.0"?>
        <Member level="platinum">
        <Member level="gold">
        <Member level="platinum">

Here I create a variable to hold the sequence of Members:

<xsl:variable name="members" select="/FitnessCenter/Member"/>

Here I iterate through the Members and print out their Names:

<xsl:for-each select="$members">
       <xsl:value-of select="Name"/>
       <xsl:text> </xsl:text>

Output: Jeff David Roger

Now I would like to insert into the member sequence a new member.  Here
I create a variable containing the new member:

<xsl:variable name="new-member">
    <Member level="platinum">

Question #1: Is this the correct approach to creating a new Member?  I
suspect not, but I don't know how else to do it.

Now, using the insert-before function, I would like to insert this new
member before the second Member:

<xsl:variable name="members-plus-new-member"

Lastly, I would like to print the Name of each Member in the new

<xsl:for-each select="$members-plus-new-member">
       <xsl:value-of select="Name"/>
       <xsl:text> </xsl:text>

The output that I get is not what I desire:

Output: Jeff David Roger

Note that Sally is missing.

Question #2: What am I doing wrong?  Obviously, I am not understanding
something fundamental about sequences in XSLT 2.0.  Any clarity on this
topic would be greatly appreciated.  /Roger

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

Current Thread