You could try this XSLT 2.0 stylesheet:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" />
<xsl:template match="/links">
<links>
<xsl:for-each-group select="*"
group-by="string-join((local-name(),@*),'')">
<xsl:copy-of select="." />
</xsl:for-each-group>
</links>
</xsl:template>
</xsl:stylesheet>
The above stylesheet when applied to the given XML, produces output:
<?xml version="1.0" encoding="UTF-8"?>
<links>
<newlink book="Find.pdf" name="MDSearchReplace"/>
<newlink book="Find.pdf" name="MDSearch"/>
<gotolink book="System.pdf" name="fontdefine"/>
<gotolink book="System.pdf" name="graphicdefine"/>
</links>
I have a feeling, the above stylesheet could be made more generic. It
does not take care of namespaces, and the attribute order.
This is tested with Saxon 8.8J.
On 12/4/06, Rick Quatro <frameexpert(_at_)truevine(_dot_)net> wrote:
Hello All,
I have the following XML file:
<?xml version="1.0"?>
<links>
<newlink book="Find.pdf" name="MDSearchReplace" />
<newlink book="Find.pdf" name="MDSearch" />
<newlink book="Find.pdf" name="MDSearch" />
<gotolink book="System.pdf" name="fontdefine" />
<gotolink book="System.pdf" name="graphicdefine" />
</links>
The newlink elements have to be unique within the links element. Is there a
way I can find duplicates; for example, the second and third elements. Note
that the duplicate elements might not necessarily be adjacent to each other.
Thanks in advance.
Rick Quatro
Carmen Publishing
585-659-8267
www.frameexpert.com
--
Regards,
Mukul Gandhi
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--