[Home] [By Thread] [By Date] [Recent Entries]
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: 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: 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/
|

Cart



