Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

  • arvidbeheerder
  • Registratie: november 2003
  • Laatst online: 21:29
Beste mede tweakers,

Ik heb een vraag die voor jullie ongetwijfeld ongelooflijk simpel is, maar waar ik niet uit kom. Ik heb een vrij omslachtige XML file waarvan ik een aantal gegevens wil tonen als tabellen op een HTML pagina. Het gaat om uitslagen bij een wedstrijd waar meerdere series gelopen worden. De serie is als attribuut meegegeven in de XML file in de tag <heat>:



Mijn script is op dit moment redelijk simpel en ziet er als volgt uit:

Dit laat alle uitslagen in 1x zien. Nu wil ik graag dat er voor elke heat een aparte tabel aangemaakt wordt. Hiervoor moet ik denk ik ergens een voorwaarde stellen in de vorm van een if statement of zoiets, maar ik kom er niet uit hoe dat er uit moet komen te zien. Hoe kan ik dit het simpelst oplossen? Ik heb op google gezocht op XML attribute as condition en nog wat aanpassingen daarop maar ik kom er niet uit.

Alvast bedankt voor jullie hulp! _/-\o_

  • Gooly
  • Registratie: juli 1999
  • Laatst online: 10-05 16:29

Gooly

Wie? Ik?

Zomaar een losse gedachte, ik ben niet zo'n javascript of ajax goeroe. Maar is het geen kwestie van een lus bouwen om het hele geheel hierboven met 'while (xmlDoc.hasChildNodes())' of iets dergelijks? Waarbij de heats dan de childnodes zijn?

See that's the trouble with reality, it's taken far too seriously.


  • arvidbeheerder
  • Registratie: november 2003
  • Laatst online: 21:29
Update: de attribute uitlezen doe je met getAttribute, wat is het leven toch simpel. Nu snap ik alleen nog niet hoe ik de loop moet bouwen om voor elke serie een tabel op te bouwen |:(

arvidbeheerder wijzigde deze reactie 12-08-2015 15:20 (71%)


  • arvidbeheerder
  • Registratie: november 2003
  • Laatst online: 21:29
Niemand?

  • NMe
  • Registratie: februari 2004
  • Laatst online: 00:56

NMe

Admin DevschuurŽ

Quia Ego Sic Dico.

Als je nou eens de code netjes in je topic had gezet in plaats van screenshotjes te posten dan hadden mensen die je willen helpen misschien nog wat kunnen aankloten in JSFiddle ofzo. ;) Zie Hoe post je code? / Hoe gebruik je de code tag? Bijkomend voordeel is dat je vraag ook nog interessant blijft voor mensen die hetzelfde probleem hebben en je topic in de search tegenkomen, ook als je ooit van domein verwisselt...

Anyway, je probleem: het makkelijkst is het denk ik als je een DOMParser gebruikt. Als je IE 9 of lager ook wil ondersteunen kan dat met een ActiveX-object, "Microsoft.XMLDOM". Zie bijvoorbeeld hier een klein voorbeeldje. Als je JQuery gebruikt kun je het ook af met één functie.

Je kan vervolgens gewoon door alle heats heen loopen zonder al die calls naar de DOM-functies die je hierboven gebruikt en kan toch per heat een table afdrukken.

Een alternatief is om het aan de serverkant te doen. Je doet dan de hele omzetting van XML naar HTML in PHP (of een andere serverside-taal) en hoeft dan alleen maar af te drukken wat je terugkrijgt van je AJAX-request. Bijkomend voordeel is dat je aan de serverkant kan cachen als je wil.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • epic007
  • Registratie: februari 2004
  • Laatst online: 19-09 14:48
Kijk ook eens naar XSLT http://www.w3schools.com/xsl/

epic007 wijzigde deze reactie 21-08-2015 20:24 (66%)

Pagina: 1


Apple iPhone X Google Pixel XL 2 LG W7 Samsung Galaxy S8 Google Pixel 2 Sony Bravia A1 OLED Microsoft Xbox One X Apple iPhone 8

© 1998 - 2017 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Hardware.Info de Persgroep Online Services B.V. Hosting door True

*