login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Xml omzetten in array

Offline Chupskie - 06/12/2006 11:10
Avatar van ChupskieMySQL beginner Hallo allemaal ik heb een xml pagina, met deze opbouw: http://www.plaatscode.be/3287/

Nu ben ik bezig, dit in losse arrays te zetten, doormiddel van explode.
  1. <?php
  2. $adres1 = explode("<land><landnaam>", $pagina );
  3. $adressen1 = explode(",", $adres1[1] );
  4. print_r($adressen1);
  5. ?>


Alleen nu krijg ik alles achter elkaar in 1 array dus zoiets:
NLNoord-BrabantHierdienaamHierdienaamHierdiestraatHierdepostcode

En dat allemaal in 1 array, en ik wil ze in allemaal losse array's hoe kan ik dat oplossen?

10 antwoorden

Gesponsorde links
Offline Thomas - 06/12/2006 11:14 (laatste wijziging 06/12/2006 11:15)
Avatar van Thomas Moderator Maak een parser die de XML uitleest - je weet hoe de structuur van je XML er uitziet. Op grond hiervan kun je een parser schrijven.

Als je server PHP5 ondersteunt hoef je dit niet eens te doen, die heeft (/ schijnt) hele handige XML-functies (te hebben) die alles voor je in een array proppen volgens mij.
Offline Chupskie - 06/12/2006 11:16 (laatste wijziging 06/12/2006 11:35)
Avatar van Chupskie MySQL beginner Ik zal me daar eens in gaan verdiepen, ik draai trouwens nog op PHP4, dus helaas heb ik niks aan die PHP5 xml functies.

edit:
  1. <?php
  2. $address = "hierstaatmijnlink";
  3. $bestand = file_get_contents($address);
  4.  
  5. function binnen($parser, $data){
  6. echo $data;
  7. }
  8. function openTag($parser, $data){
  9. echo "<b>";
  10. }
  11. function sluitTag($parser, $data){
  12. echo "</b><br />";
  13. }
  14. $xml_parser = xml_parser_create();
  15. xml_set_element_handler($xml_parser, "openTag", "sluitTag");
  16. xml_set_character_data_handler($xml_parser, "binnen");
  17. $data = file_get_contents($address);
  18. if(!(xml_parse($xml_parser, $data))){
  19. die("Syntax fout op: " . xml_get_current_line_number($xml_parser));
  20. }
  21. xml_parser_free($xml_parser);
  22.  
  23. ?>


Alles wordt nu netjes geparsed op mijn scherm.
Alleen wil ik dat ie niet alles parsed, maar ik wil alleen bepaalde regels eruit pakken, zoals bijvoorbeeld alleen de postcode.
Daarom ging ik ook met arrays werken.
Is hier ook nog een oplossing voor?   
Offline rambo - 06/12/2006 11:55
Avatar van rambo HTML beginner Je zou eens even een kijkje moeten nemen bij XSLT. Met deze techniek kun je een XML-bestand helemaal transformeren in een voor jou gewenst formaat. (http://nl3.php.net/xslt)
Offline Chupskie - 06/12/2006 12:06
Avatar van Chupskie MySQL beginner Dan zet je XML alleen om in een ander soort XML, en ik wil ze juist in array hebben ;)

Ik ben al een heel stuk verder: http://www.plaatscode.be/3288/
Ik heb nu alles in een array gestopt (dacht ik).

Maar ik krijg een lege array terug (met print_r)??
Iemand enig idee?
Offline Thomas - 06/12/2006 12:41
Avatar van Thomas Moderator > RSS reader.
Offline Chupskie - 06/12/2006 13:05 (laatste wijziging 06/12/2006 13:24)
Avatar van Chupskie MySQL beginner Thankxs, ik ben er mee bezig, met het 1ste voorbeeld, maar ik krijg nog geen resultaten terug: FangorN Parser (0 items) ??

Het script werkt wel, maar als ik de link en de channels verander naar mijn gegevens werkt het niet.

Het gaat eigenlijk om dit:
http://maps.goo...Vby_dCJHJg

Dat is het xml bestand. Nu heb ik bij channel name ingevuld en bij $rss->newfile, de link?
Maar hij geeft geen foutmelding of niks? alleen 0 items gevonden.

Kan ik die link niet uitlezen of moet ik het toch anders doen?
Offline Thomas - 06/12/2006 13:44
Avatar van Thomas Moderator Dude, je wilde een voorbeeld, je kreeg een voorbeeld.
Dat script is bedoeld voor RSS, niet voor die XML-zut van jou.
Je zou de functies als uitgangspunt kunnen gebruiken voor je "eigen" parser - er staat genoeg commentaar in om er chocola van te maken.

HF.
Offline Chupskie - 06/12/2006 14:11
Avatar van Chupskie MySQL beginner Haha.. keey thankxs FangorN   
Offline nemesiskoen - 06/12/2006 15:39
Avatar van nemesiskoen Gouden medaille

PHP expert
Bestaat er geen webserviceparser voor die .kml files? Heeft google daar niets voor gereleased? Het idee lijkt heel hard op XML-RPC maar dat is het niet volgens mij.
Offline Thomas - 06/12/2006 15:51
Avatar van Thomas Moderator Als je erbij vertelt hoe een XML-document er uit zou moeten zien middels een .xsd-document (opvolger van de DTD), dan zou je dit kunnen doen.

Ik ken echter geen gratis XML-validatie-service / service waarmee je XML-bestanden uit kunt laten lezen; los daarvan - je zult dan toch weer "het array" op een of andere manier binnen moeten halen?

Daar zal dan ook weer code voor geschreven moeten worden .
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.21s