Ik ben iets aan het proberen met Key's in XSLT, maar volgens mij werkt het net iets anders dan ik denk.
Onderstaand probleem is geen real-life probleem vandaar de wellicht vreemde combinaties
Ik heb een Family, dit kunnen er meerdere zijn, een family heeft meerder contacts. Een contact heeft op zijn beurt een achternaam en voornaam.
Er moet een lijst gegenereerd worden die een overzicht geeft van Family's met daarin welke verschillende achternamen hierin voorkomen, bij elke achternaam moet een lijst van verschillende voornamen komen. De achternamen bij een family moeten uniek zijn.
Ik heb een bestaand voorbeeld gebruikt welke een lijst van achternamen produceert die uniek zijn en de daarbij horende voornamen (hoeven niet uniek te zijn)
Voor de unieke achternamen lijst gebruik ik een Key
Deze gebruik ik in een for-each:
Dit werkt prima.
Nu wil ik deze lijst per family doen, maar met de bovenstaande key en for-each lus groepeert hij alle achternamen samen, ongeacht bij welke family die hoort.
Mijn gedachte was als ik een for-each gebruik dat dan de key op de huidige node werkt, waar ik op dat moment ben, maar volgens mij gaat het hier dus mis, de key werkt op het gehele document.
Is er een mogelijkheid zodat de Key op de node werkt van dat moment.
Ik krijg dus wel een unieke lijst van achternamen, maar alle famillies zitten door elkaar.
De XSLT en XML heb ik niet gepost voor de overzichtelijkheid van dit topic, dit kan op verzoek nog toegevoegd worden.
Onderstaand probleem is geen real-life probleem vandaar de wellicht vreemde combinaties
Ik heb een Family, dit kunnen er meerdere zijn, een family heeft meerder contacts. Een contact heeft op zijn beurt een achternaam en voornaam.
Er moet een lijst gegenereerd worden die een overzicht geeft van Family's met daarin welke verschillende achternamen hierin voorkomen, bij elke achternaam moet een lijst van verschillende voornamen komen. De achternamen bij een family moeten uniek zijn.
Ik heb een bestaand voorbeeld gebruikt welke een lijst van achternamen produceert die uniek zijn en de daarbij horende voornamen (hoeven niet uniek te zijn)
Voor de unieke achternamen lijst gebruik ik een Key
XML:
1
| <xsl:key name="contacts-by-surname" match="contact" use="surname" /> |
Deze gebruik ik in een for-each:
XML:
1
| <xsl:for-each select="contact[count(. | key('contacts-by-surname', surname)[1]) = 1]"> |
Dit werkt prima.
Nu wil ik deze lijst per family doen, maar met de bovenstaande key en for-each lus groepeert hij alle achternamen samen, ongeacht bij welke family die hoort.
Mijn gedachte was als ik een for-each gebruik dat dan de key op de huidige node werkt, waar ik op dat moment ben, maar volgens mij gaat het hier dus mis, de key werkt op het gehele document.
Is er een mogelijkheid zodat de Key op de node werkt van dat moment.
Ik krijg dus wel een unieke lijst van achternamen, maar alle famillies zitten door elkaar.
De XSLT en XML heb ik niet gepost voor de overzichtelijkheid van dit topic, dit kan op verzoek nog toegevoegd worden.