|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: identifying the specific comments associated with
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: 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 # # # #
|
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
|

Cart








