Ik heb twee brandende vragen waar ik echt niet uitkom. Ik heb op diverse fora gezocht en mijn XML Bible doorgespit, maar ik vind geen oplossing...waarschijnlijk omdat ik door mijn onervarenheid niet weet waar ik op moet zoeken.
Wat is het geval:
Ik heb een bron XML bestand met daarin meerdere <FIELD> elementen. Bij het <FIELD> element hoort een attribuut met naam ID en een waarde. Onder het <FIELD> element bestaat nog een <VALUE> element.
In de doel XML moet een <ROW> element komen met attributen. Er moeten in feite net zoveel attributen komen als dat er <FIELD> elementen zijn. De naam van elk attribuut moet gelijk zijn aan de waarde van het ID attribuut dat hoort bij het <FIELD> element. De waarde van elk attribuut moet gelijk zijn aan de waarde van het <VALUE> element.
Als ik een vaste attribuut name opgeef, werkt het, al geeft ie dan enkel de waarde van het laatste <FIELD> element (op zich logisch).
Nu heb ik dus twee vragen:
1. Hoe maak ik de naam van een attribuut variabel? Ik heb nu <xsl:attribute name="test">, maar in plaats van "test" moet het attribuut zoals gezegd als naam de waarde van het attribuut ID krijgen.
2. Met vaste attribuut name lukt e.e.a., maar zoals gezegd slechts voor één <FIELD> element. Hoe kan ik automatisch meerdere attributen aanmaken op basis van het aantal <FIELD> elementen?
Bij elementen doe je dat via het xsl:for-each select commando, maar dat werkt niet in dit geval.
Hopelijk kan een van jullie me in de goede richting duwen....de rest van de transformatie lukt al maar dit variabele stukje is wel van belang.
Wat is het geval:
Ik heb een bron XML bestand met daarin meerdere <FIELD> elementen. Bij het <FIELD> element hoort een attribuut met naam ID en een waarde. Onder het <FIELD> element bestaat nog een <VALUE> element.
In de doel XML moet een <ROW> element komen met attributen. Er moeten in feite net zoveel attributen komen als dat er <FIELD> elementen zijn. De naam van elk attribuut moet gelijk zijn aan de waarde van het ID attribuut dat hoort bij het <FIELD> element. De waarde van elk attribuut moet gelijk zijn aan de waarde van het <VALUE> element.
Als ik een vaste attribuut name opgeef, werkt het, al geeft ie dan enkel de waarde van het laatste <FIELD> element (op zich logisch).
Nu heb ik dus twee vragen:
1. Hoe maak ik de naam van een attribuut variabel? Ik heb nu <xsl:attribute name="test">, maar in plaats van "test" moet het attribuut zoals gezegd als naam de waarde van het attribuut ID krijgen.
2. Met vaste attribuut name lukt e.e.a., maar zoals gezegd slechts voor één <FIELD> element. Hoe kan ik automatisch meerdere attributen aanmaken op basis van het aantal <FIELD> elementen?
Bij elementen doe je dat via het xsl:for-each select commando, maar dat werkt niet in dit geval.
Hopelijk kan een van jullie me in de goede richting duwen....de rest van de transformatie lukt al maar dit variabele stukje is wel van belang.