Andre: Elemente vergleichen

Beitrag lesen

Grüßt Euch,

ich habe zwei XML-Dateien. Mit Hilfe eines XSL Stylesheets möchte ich beide Dateien nach Elementen durchsuchen.
Diese Elemente haben eine eindeutige ID als Attribut, die in beiden Dateien vorkommen können.

Beispiel:
Datei 1:

  
[...]  
<Element id=001>  
 Inhalt  
</Element>  
<Element id=002>  
 Inhalt  
</Elment>  
<Element id=003>  
 Inhalt  
</Element>  
[...]  

Datei 2:

  
[...]  
<Element id=001>  
 Inhalt  
</Element>  
<Element id=003>  
 Inhalt  
</Element>  
[...]  

Mir geht es nun darum, beide Dateien auf die gemeinsame ID zu untersuchen und in einer dritten Datei die Ergebnisse darzustellen.

Wäre also für das Beispiel:
Datei 3(Ergebnis):

  
[...]  
<Element id=001>  
 Inhalt (Datei 1)  
 Inhalt (Datei 2)  
</Element>  
<Element id=003>  
 Inhalt (Datei 1)  
 Inhalt (Datei 2)  
</Element>  
[...]  

Der Inhalt von <Element id=002> aus der 1. Datei fällt weg.

Mein Problem ist nun, dass ich nicht weiß, wie ich die Elemente anspreche, so dass der Test durchgeführt wird.
Theoretisch müsste ja jedes Element aus Datei 1 mit allen Elementen aus Datei 2 verglichen werden, dann das 2. Element der Datei 1 mit allen Elementen aus Datei 2 (usw.)

Ein erster, erfolgloser Versuch ergab nicht wirklich einen Test. Hier der Code dazu:

  
[...]  
<xsl:template name="vergleich">  
	<xsl:variable name="Doc_1" select=".//*:featureMember//*:localId[1]"/>  
	<xsl:variable name="Doc_2" select="document('Datei2')//*:localId"/>  
	  
	<xsl:for-each select="$Doc_1">  
			<xsl:choose>  
				<xsl:when test="$Doc_1 = $Doc_2">  
					<xsl:value-of select="$Doc_1"/>  
				</xsl:when>  
			</xsl:choose>  
	</xsl:for-each>  
</xsl:template>  

Als Ergebnis erhalte ich die Ausgabe aller Elemente der beiden Dateien so oft, wie Elemente enthalten sind (heißt also, die Schleife wird bei 20 Elementen 20 mal durchlaufen).
Der Test scheint nicht zu funktionieren, ein Vergleich "$Doc_1 != $Doc_2" ergab das gleiche Ergebnis.

Weiß jemand einen Ansatz
Vielen Dank und viele Grüße

Frutz