externe xml file uitlezen naar html

Status
Niet open voor verdere reacties.

RowanP

Gebruiker
Lid geworden
21 feb 2007
Berichten
78
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:
Code:
<feed ver="2.0">
<onnodig>
<ding1>bla</ding1>
</onnodig>
<nodig>
<element1>5</element1>
<element2></element2>
</nodig>
</feed>
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.

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 van
PHP:
$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 ;)


:thumb:
 
Laatst bewerkt:
Uiteindelijk ben ik zelf via php.net tot een nette oplossing gekomen.
PHP:
$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:
$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!:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan