[XML] XSLT vraagstukje

Pagina: 1
Acties:

  • Nongetjie
  • Registratie: December 2004
  • Laatst online: 13-03-2025
Hee Tweakers

Heb een probleempje met xml.Ik moet een xsl bestand maken dat een xml-bestand genereert. Hierbij moet ik gegevens uit een xml bestand halen. Dit xml bestand heeft de volgende opbouw (voorbeeld)

<garage>
<klanten>
<klant relatienummer="145">
<naam>
<voornaam>Peter</voornaam>
<tussenvoegsel>de</tussenvoegsel>
<achternaam>Bruin</achternaam>
</naam>
<adres>
<straat>Willy Dobbe Plantsoen</straat>
<huisnummer>21</huisnummer>
<huisnummertoevoeging>a</huisnummertoevoeging>
<postcode>6766FG</postcode>
<plaats>IJsselsteijn</plaats>
</adres>
</klant>

</klanten>
<wagenpark>

<auto>
<kenteken>RK-VD-02</kenteken>
<kentekenvolgnummer>3</kentekenvolgnummer>
<eigenaar>300</eigenaar>
<apk>
<datum>05-03-2005</datum>
<kilometerstand>30000</kilometerstand>
</apk>
<merk>Renault</merk>
<type>Twingo</type>
<bouwjaar>2004</bouwjaar>
<onderhoud>
<beurt>
<datum>01-05-2004</datum>
<type>aflevering</type>
</beurt>
<beurt>
<datum>01-08-2004</datum>
<type>10000 km</type>
</beurt>
<beurt>
<datum>08-03-2005</datum>
<type>30000 km</type>
</beurt>
</onderhoud>
</auto>
</wagenpark>
</garage>\

Nu moet ik de kentekens genereren met daaraan gekoppeld de klantgegevens. Dit gebeurt dus adhv het 'klant relatienummer' van klant en 'eigenaar' van auto.
Ik heb alleen geen flauw idee hoe ik deze bij elkaar moet brengen. Heb wat zitten goochelen en dit was mijn resultaat:

<td>eigenaar</td><td><xsl:value-of select="klant[@relatienummer='select="eigenaar"']'/></td>

maar dit werkt dus niet. Iemand die weet hoe het wel moet? Kon het op w3schools niet vinden

Alvast bedankt voor de hulp!

[ Voor 22% gewijzigd door Nongetjie op 29-12-2005 13:32 ]


Verwijderd

Typisch gevalletje van xml misbruik; het proberen vastleggen van een relationeel model in xml. Maar dat terzijde.

Kun je niet gebruik maken van een xsl variabele om tijdelijk de juiste waarde voor je select in op te slaan?

  • whoami
  • Registratie: December 2000
  • Laatst online: 20-04 18:20
Wat mark platvoet zegt, is waar:
je moet xml niet proberen te gebruiken als databank.

Verder: zeggen 'het werkt niet' is wel makkelijk. Kom eens met error boodschappen op de proppen, of geef precieze uitleg wat er niet werkt.
Zet je code ook tussen code-tags.

https://fgheysels.github.io/


  • Nongetjie
  • Registratie: December 2004
  • Laatst online: 13-03-2025
Error message:

This file is not well-formed: Whitespace (Blank, Tab, CR LF) expected
De cursor gaat dan staan bij mijn stukje code van mijn eerste post.

De (niet werkende) oplossing die ik heb staan komt trouwens van: http://www.w3schools.com/xpath/xpath_syntax.asp

//title[@lang='eng'] Selects all the title elements that have an attribute named lang with a value of 'eng'

Dus het in theorie zou het moeten kunnen

(en waarom zou xml niet op deze manier gebruikt kunnen worden, lijkt me een vrij mooie oplossing zo)

[ Voor 18% gewijzigd door Nongetjie op 29-12-2005 14:33 ]


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 20-04 18:28

Gerco

Professional Newbie

Als je letterlijk deze code hebt, is er wel wat mis mee ja: (let goed op de kleurtjes)

<xsl:value-of select="klant[@relatienummer='select="eigenaar"']'/>

Je gebruikt ongematchte quotes ( " en ' ) en gebruikt binnen een string die met "" getermineerd moet worden weer "", dat kan ook niet.

Dit werkt misschien beter:
code:
1
2
<xsl:variable name="eigenaar" select="eigenaar"/>
<xsl:value-of select="/garage/klanten/klant[@relatienummer=$eigenaar]/naam/achternaam"/>

[ Voor 94% gewijzigd door Gerco op 29-12-2005 15:30 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • Nongetjie
  • Registratie: December 2004
  • Laatst online: 13-03-2025
Dit werkt idd beter, ik heb het nu voor elkaar! Tnx!
Pagina: 1