Ik heb mij een breuk gezocht om een manier te vinden om een extern xml bestand uit te lezen en gegevens hiervan om te zetten naar html op mijn eigen website. Ik heb javascript en xslt voorbij zien komen maar ik mijd allereerst javascript zoveel mogelijk en ik zag dat je bij xslt iets in het xml bestand moet zetten (maar deze heb ik niet in mijn beheer dus ik kan die niet aanpassen).
Zou iemand mij dus kunnen helpen om dit uit te lezen:
link: http://voorbeeldlink.com/bestand
inhoud:
Ik heb alleen de 2 nodige elementen nodig. Ik gebruik php in de pagina waar ik het in wil displayen dus ik kan includen etc.Code:<feed ver="2.0"> <onnodig> <ding1>bla</ding1> </onnodig> <nodig> <element1>5</element1> <element2></element2> </nodig> </feed>
Alvast bedankt! Ik kom er gewoon echt niet meer uit.
Met PHP kan je een bestand opvragen (zie fopen en file_get_contents) en daarna parsen (via een php xml parser, zit als het goed is ingebouwd/pecl mod). Mocht dat net allemaal iets te zijn (het parsen) kan je natuurlijk ook gewoon met regexp's (preg_match et al.) de data opvragen.
Iets vanPHP Code:
1 2 3 4 $data = file_get_contents("http://www.example.com/xml_bestand"); // nu met xml parser parsen, of 'valsspelen': $element1 = preg_match("/<element1>(.*)<\/element1>/", $data, $matches); // oid, werkt niet, voorbeeld
Maargoed, dit wordt steeds meer een PHP (ipv XML) vraag
![]()
Laatst aangepast door That Guy : 11 maart 2011 om 15:53
Bah, censuur.
Uiteindelijk ben ik zelf via php.net tot een nette oplossing gekomen.
PHP Code:
1 2 3 4 $xmlUrl = "http://voorbeeld.nl/xlmfile"; // XML feed file/URL $xmlStr = file_get_contents($xmlUrl); $root = simplexml_load_string($xmlStr); echo "{$root->level1->level2->level3->etc}"; //output
Op deze manier kan je de gegevens uitlezen van tenminste 3 level voor zover ik kan testen.
in mijn voorbeeldgeval zal ik dit toe moeten passen:
PHP Code:
1 2 3 4 5 $xmlUrl = "http://voorbeeldlink.com/bestand"; // XML feed file/URL $xmlStr = file_get_contents($xmlUrl); $feed = simplexml_load_string($xmlStr); echo "{$feed->nodig->element1}"; //output: 5 echo "{$feed->nodig->element2}"; //output:
Ik hoop hiermee anderen te kunnen helpen!![]()