[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Hi Michael,
At the moment, Brandon's solution appears to be working. If after examining the output from my full data set I discover it has problems, I'll give your solution a try. By the way, your code contains XPath expressions I have never seen, so I will look those up in order to broaden my XPath repertoire.
-----Original Message----- From: Michael M|ller-Hillebrand
Sent: Wednesday, October 12, 2011 11:01 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] Selecting non-duplicate nodes
Am 12.10.2011 um 17:33 schrieb Mark:
Mark,
If a node in your sample is a duplicate of another node can be retrieved from the attribute names and their values. So IMO the grouping key could be a serialization of them. In other words, we look at the source as if we were a text processor, like this:
In XML the order of attributes is usually irrelevant, but the above solution does not ignore order. But it works with any number of attributes.
- Michael M|ller-Hillebrand
Re: [xsl] Selecting non-duplicate nodes
Subject: Re: [xsl] Selecting non-duplicate nodes From: "Mark" <mark@xxxxxxxxxxxx> Date: Wed, 12 Oct 2011 11:14:02 -0700 |
Hi Michael,
At the moment, Brandon's solution appears to be working. If after examining the output from my full data set I discover it has problems, I'll give your solution a try. By the way, your code contains XPath expressions I have never seen, so I will look those up in order to broaden my XPath repertoire.
Thanks for your help, Mark
-----Original Message----- From: Michael M|ller-Hillebrand
Sent: Wednesday, October 12, 2011 11:01 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] Selecting non-duplicate nodes
Am 12.10.2011 um 17:33 schrieb Mark:
My question now is: how can I change this stylesheet so that for the listed input, no <FormatButtons> in the output contains more than one copy of a <Format> with the same attribute name and value? That is, where the current output is, for example:
<FormatPage souvenir-sheet="365"> <FormatButtons> <Formats se-tenant="365"/> <Formats se-tenant="365"/> <Formats coupon="367"/> <Formats coupon="368"/> </FormatButtons> </FormatPage>
Mark,
If a node in your sample is a duplicate of another node can be retrieved from the attribute names and their values. So IMO the grouping key could be a serialization of them. In other words, we look at the source as if we were a text processor, like this:
<xsl:template match="FormatButtons"> <xsl:copy> <xsl:for-each-group select="Formats" group-by="string-join( for $i in 1 to count(@*) return concat(name(@*[$i]), '=', @*[$i]), ' ')"> <xsl:apply-templates select="."/> </xsl:for-each-group> </xsl:copy> </xsl:template>
In XML the order of attributes is usually irrelevant, but the above solution does not ignore order. But it works with any number of attributes.
- Michael M|ller-Hillebrand
-- _______________________________________________________________ Michael M|ller-Hillebrand: Dokumentation Technology Adobe Certified Expert, FrameMaker Consulting and Training, FrameScript, XML/XSL, Unicode Blog [de]: http://cap-studio.de/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Selecting non-duplicate n, Michael Müller-Hille | Thread | Fw: [xsl] Selecting non-duplicate n, Mark |
Re: [xsl] Selecting non-duplicate n, Mark | Date | Re: [xsl] XSLT vs Schematron Decisi, Eliot Kimber |
Month |