Re: Identity Transform Grouping Question
<<Node trees don't contain markup, so don't have tags, and you can't have half a node, so you can never insert a closing tag anywhere, in particular you can't insert one at the location of this comment. The way to put a group of nodes as child elements of another node is to first create the wrapper node <foo> then inside that select all the elements that should go in the group </foo> >> Perhaps my comments are misleading. My intent _is_ to explicitly wrap each unique group of <location> nodes -- that is, <location> nodes belonging to a unique <office> node -- with a surrounding <office></office> node (I said "tags" because my result tree is saved as an new xml file as input to another process -- so I am conceptualizing what that resulting xml file will look like, markup and all). My comments include complete markup (opening and closing tags) for this wrapper node; it is commented out because I could not successfully generate the wrapper node for each unique group, but wanted to show where the wrapper node should exist within the result tree. <<actually I'm not sure _why_ you are using msxsl:node-set() >> Some of the XSLT, including this technique, was provided to me by another person on another site in order to assist me with using the Muenchian method for grouping <office> nodes within unique <city> nodes. A somewhat general explanation of my goal is that I want to sort the source tree according to several sort levels, then perform an identity transform that would reverse the parent-child relationship between the <city> and <office> nodes, and, finally, group <office> nodes according to their English name (office/names/name[@lang='en']), with each <office> node having one or more new <location> nodes to wrap the location-specific information, thus eliminating duplicate office/names nodes with the same name child. (I hope this is somewhat helpful!) As I said, the current XSLT works wonderfully (transforming a 3MB file in 2 seconds) until the point of detail where I need to eliminate the duplicate office/names nodes. My XSLT seems to fail based on the mistaken idea that the use of preceding-sibling works with sorted nodes, which I now know it does not. So, the question is...once I have a sorted node set, what technique can I use to group those nodes according to a specific node value? Specifically, how do I ensure that the result tree contains office/names nodes with a unique name child (determined by the 'lang' attribute value = 'en')? Visit our website at http://www.ubs.com This message contains confidential information and is intended only for the individual named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. E-mail transmission cannot be guaranteed to be secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender therefore does not accept liability for any errors or omissions in the contents of this message which arise as a result of e-mail transmission. If verification is required please request a hard-copy version. This message is provided for informational purposes and should not be construed as a solicitation or offer to buy or sell any securities or related financial instruments.
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