Anfänger: doppelte Einträge ignorieren

Beitrag lesen

Hallo zusammen, ich habe eine Trefferliste in der Form:

<XX_Nachweis>
ibxx:Person\_zusatzangaben
ibxx:kennzeichen16123400100066______</ibxx:kennzeichen>
ibxx:Interessent
ibxx:XX\_Person
ibxx:anredeHerr</ibxx:anrede>
ibxx:nachnameOderFirmaMustermann</ibxx:nachnameOderFirma>
ibxx:vornameDieter</ibxx:vorname>
ibxx:strasseMusterplatz</ibxx:strasse>
ibxx:hausnummer5</ibxx:hausnummer>
ibxx:postleitzahlPostzustellung77777</ibxx:postleitzahlPostzustellung>
ibxx:ort\_PostMusterhausen</ibxx:ort_Post>
ibxx:bestimmungslandD</ibxx:bestimmungsland>
</ibxx:XX_Person>
</ibxx:Interessent>
ibxx:Interessent
ibxx:XX\_Person
ibxx:anredeFrau</ibxx:anrede>
ibxx:nachnameOderFirmaMustermann</ibxx:nachnameOderFirma>
ibxx:vornameJutta</ibxx:vorname>
ibxx:geburtsnameMaier</ibxx:geburtsname>
ibxx:strasseMusterplatz</ibxx:strasse>
ibxx:hausnummer5</ibxx:hausnummer>
ibxx:postleitzahlPostzustellung77777</ibxx:postleitzahlPostzustellung>
ibxx:ort\_PostMusterhausen</ibxx:ort_Post>
ibxx:bestimmungslandD</ibxx:bestimmungsland>
</ibxx:XX_Person>
</ibxx:Interessent>
ibxx:Interessent
ibxx:XX\_Person
ibxx:anredeHerr</ibxx:anrede>
ibxx:nachnameOderFirmaMustermann</ibxx:nachnameOderFirma>
ibxx:vornameDieter</ibxx:vorname>
ibxx:strasseMusterplatz</ibxx:strasse>
ibxx:hausnummer5</ibxx:hausnummer>
ibxx:postleitzahlPostzustellung77777</ibxx:postleitzahlPostzustellung>
ibxx:ort\_PostMusterhausen</ibxx:ort_Post>
ibxx:bestimmungslandD</ibxx:bestimmungsland>
</ibxx:XX_Person>
</ibxx:Interessent>
ibxx:Interessent
ibxx:XX\_Person
ibxx:anredeFrau</ibxx:anrede>
ibxx:nachnameOderFirmaMustermann</ibxx:nachnameOderFirma>
ibxx:vornameJutta</ibxx:vorname>
ibxx:geburtsnameMaier</ibxx:geburtsname>
ibxx:strasseMusterplatz</ibxx:strasse>
ibxx:hausnummer5</ibxx:hausnummer>
ibxx:postleitzahlPostzustellung77777</ibxx:postleitzahlPostzustellung>
ibxx:ort\_PostMusterhausen</ibxx:ort_Post>
ibxx:bestimmungslandD</ibxx:bestimmungsland>
</ibxx:XX_Person>
</ibxx:Interessent>
ibxx:Interessent
ibxx:XX\_Person
ibxx:anredeFrau</ibxx:anrede>
ibxx:nachnameOderFirmaMustermann</ibxx:nachnameOderFirma>
ibxx:vornameCarmen</ibxx:vorname>
ibxx:geburtsnameWeiß</ibxx:geburtsname>
ibxx:strasseMusterplatz</ibxx:strasse>
ibxx:hausnummer5</ibxx:hausnummer>
ibxx:postleitzahlPostzustellung77777</ibxx:postleitzahlPostzustellung>
ibxx:ort\_PostMusterhausen</ibxx:ort_Post>
ibxx:bestimmungslandD</ibxx:bestimmungsland>
</ibxx:XX_Person>
</ibxx:Interessent>
ibxx:Interessent
ibxx:XX\_Person
ibxx:anredeHerr</ibxx:anrede>
ibxx:nachnameOderFirmaMustermann</ibxx:nachnameOderFirma>
ibxx:vornameDieter</ibxx:vorname>
ibxx:strasseMusterplatz</ibxx:strasse>
ibxx:hausnummer5</ibxx:hausnummer>
ibxx:postleitzahlPostzustellung77777</ibxx:postleitzahlPostzustellung>
ibxx:ort\_PostMusterhausen</ibxx:ort_Post>
ibxx:bestimmungslandD</ibxx:bestimmungsland>
</ibxx:XX_Person>
</ibxx:Interessent>
ibxx:Interessent
ibxx:XX\_Person
ibxx:anredeFrau</ibxx:anrede>
ibxx:nachnameOderFirmaMustermann</ibxx:nachnameOderFirma>
ibxx:vornameJutta</ibxx:vorname>
ibxx:geburtsnameMaier</ibxx:geburtsname>
ibxx:strasseMusterplatz</ibxx:strasse>
ibxx:hausnummer5</ibxx:hausnummer>
ibxx:postleitzahlPostzustellung77777</ibxx:postleitzahlPostzustellung>
ibxx:ort\_PostMusterhausen</ibxx:ort_Post>
ibxx:bestimmungslandD</ibxx:bestimmungsland>
</ibxx:XX_Person>
</ibxx:Interessent>
    </ibxx:Person_zusatzangaben>
 </XX_Nachweis>

(Auch wenn es nicht so scheint, die Trefferliste ist richtig, sinnvoll und nicht zu korrigieren).

Jetzt muss ich für diese Interessenten eine Aktion durchführen, allerdings für jeden nur einmal. Dazu habe ich die Liste sortiert und danach abgefragt, ob der unmittelbare Vorgänger im Namen und Vornamen gleich ist.

<xsl:variable name="zusatzangaben" select="/xx:XX_Nachweis/xx:Person_zusatzangaben/xx:Interessent[xx:kennzeichen = $id]" />
 <xsl:for-each select="$zusatzangaben/xx:Interessent/xx:XX_Person">
<xsl:sort select="xx:nachnameOderFirma"/>
<xsl:sort select="xx:vorname"/>

	<xsl:if test="not(preceding::xx:XX\_Person[1]/xx:nachnameOderFirma = ./xx:nachnameOderFirma and preceding::xx:XX\_Person[1]/xx:vorname = ./xx:vorname)">  

<tue etwas>

Es wird dann richtig sortiert (Carmen, Dieter, Dieter, Dieter, Jutta, Jutta, Jutta), die Prüfung greift aber wieder auf die ursprüngliche Reihenfolge zurück, so dass der Vorgänger von Carmen Jutta ist usw.

Was läuft falsch, wer kann helfen - schon mal vielen Dank im Voraus, dass Ihr Euch mit der Frage beschäftigt!