であると第2のAにアクセスすることができます(名前これは同じ要素を識別するために試してみてください、コンテンツではない)が同じ親の中に2回出現する:
入力XML:
<parent>
<a>0001</a>
<b>05</b>
<c>20160825</c>
<d>9463</d>
<e>anders skov petersen</e>
<f></f>
<g></g>
<h></h>
<i></i>
<a>0002</a>
<b>05</b>
<c>20160825</c>
<d>9463</d>
<e>anders skov petersen</e>
<f></f>
<g></g>
<h></h>
<i></i>
<j>New element</j>
</parent>
XSLT 1.0:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
<xsl:key name="kDuplicate" match="*[generate-id(parent::*) =
generate-id(current()/parent::*)]" use="name()"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()[key('kDuplicate', name())[2]]"/>
</xsl:copy>
</xsl:template>
<xsl:template match="parent">
<xsl:copy>
<xsl:for-each select="descendant::*[key('kDuplicate', name())[2]]">
<xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy>
</xsl:for-each>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
結果:(要素j
が表示されない、それは親の中に一度だけ表示されているとして)
<parent>
<a>0001</a>
<b>05</b>
<c>20160825</c>
<d>9463</d>
<e>anders skov petersen</e>
<f/>
<g/>
<h/>
<i/>
<a>0002</a>
<b>05</b>
<c>20160825</c>
<d>9463</d>
<e>anders skov petersen</e>
<f/>
<g/>
<h/>
<i/>
</parent>
あなたは要素に基づいて重複を探していますか?名?または要素の内容について?例えば以下のような複雑なコンテンツが存在することができるか? 'バー '? –