Subject: RE: [xsl] identifying the specific comments associated with an element From: "Michael Kay" <mhk@xxxxxxxxx> Date: Fri, 26 Mar 2004 09:09:50 -0000 |
It's an example of positional grouping. In XSLT 2.0, you can do <xsl:for-each-group select="node()" group-ending-with="item"> (an interesting use case for this rarely-used option) In 1.0, you do <xsl:for-each select="item"> <xsl:variable name="gid" select="generate-id(.)"/> <xsl:for-each select="preceding-sibling::comment()[generate-id(following-sibling::item[1]) =$gid]"> Unfortunately this is likely to have O(n^2) performance. Michael Kay # -----Original Message----- # From: avi paradise [mailto:aparadise@xxxxxxxxxxxxxxx] # Sent: 26 March 2004 02:10 # To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx # Subject: [xsl] identifying the specific comments associated # with an element # # I would like to process data that is in the following format. # # <dataItems> # <!-- this is a comment about the first item --> # <item name="itemName1">I1</item> # # <!-- this is a comment about the second item --> # <!-- this is a follow on comment for 2nd item --> # <item name="itemName2">I2</item> # # <!-- this is a comment about the third item --> # <!-- 3rd item also has an additional comment line --> # <item name="itemName3">I3</item> # # <!-- this is a comment about the fourth item --> # <item name="itemName4">I4</item> # </dataItems> # # In particular I would like to be able to process one item at # a time as is customarily done with <xsl:apply-templates # select="/dataItems/item" /> # # What I don't understand how to do is associate the comments # with the appropriate data items. # For instance, how would I process this data to convert the # comments into attributes as follows: # # <dataItems> # <item name="itemName1" comment="this is a comment about # the first item">I1</item> # # <item name="itemName2" comment="this is a comment about # the second item. this is a follow on comment for 2nd item">I2</item> # # <item name="itemName3" comment="this is a comment about # the third item. 3rd item also has an additional comment # line">I3</item> # # <item name="itemName4" comment="this is a comment about # the fourth item">I4</item> </dataItems> # # Or how would I select the item whose name is "itemName3" # along with it's comments? i.e call <xsl:apply-templates # select="/dataItems/item/[@name = 'itemName3']" /> and within # the item template grab the comments # <!-- this is a comment about the third item --> # <!-- 3rd item also has an additional comment line --> # # # Thanks, # ap # # # #
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] identifying the specific , M. David Peterson | Thread | RE: [xsl] identifying the specific , Josh Canfield |
RE: [xsl] XSLT 2.0 Decimal number s, Ragulf Pickaxe | Date | [xsl] Function in FO, Gianni Ferrari |
Month |