Subject: RE: [xsl] [XSLT 2.0] Using insert-before() to insert a non-atomic value From: "Michael Kay" <mhk@xxxxxxxxx> Date: Sat, 28 Feb 2004 18:13:18 -0000 |
# # 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> # </xsl:for-each> # # 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"> # <Name>Sally</Name> # <Phone>444-1234</Phone> # <FavoriteColor>green</FavoriteColor> # </Member> # </xsl:variable> # # 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. This creates a new Member element but it also creates a document node as a parent of that element. You can avoid creating the document node by writing: <xsl:variable name="new-member" as="element()"> <Member level="platinum"> <Name>Sally</Name> <Phone>444-1234</Phone> <FavoriteColor>green</FavoriteColor> </Member> </xsl:variable> # # 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" # select="insert-before($members,2,$new-member)"/> # # Lastly, I would like to print the Name of each Member in the new # sequence: # # <xsl:for-each select="$members-plus-new-member"> # <xsl:value-of select="Name"/> # <xsl:text> </xsl:text> # </xsl:for-each> # # 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 # You have added a document node into the sequence, not a Member element, and the document node does not have a child called "Name". Michael Kay XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] [XSLT 2.0] Using insert-b, David Carlisle | Thread | [xsl] Executing SQL queries - XSLT , Manish Rambabu |
[xsl] Re: What is the future of XSL, Mulberry Technologie | Date | Re: [xsl] html table with three col, David Carlisle |
Month |