xml parsen
Hallo iedereen, graag wou ik gebruik maken van de http://boardgamegeek.com api, je krijgt dus een xml file met alle gegevens (VB: http://www.boardgamegeek.com/xmlapi/boardgame/13). Hoe kan ik hier data uithalen en gebruiken in een variable op mijn website? Hoe kan ik bijvoorbeeld het minimum aantal spelers weergeven op mijn website?
Alvast bedankt
Louis
Alvast bedankt
Louis
Probeer eerst eens dit uit
http://www.w3schools.com/php/php_xml_simplexml.asp
Er staan concrete voorbeelden.
---
De link die jij doorstuurt, zit al met een groot probleem: het bevat geen XML hoofding.
Bovenaan hoort iets als dit:
Voor zover ik me herinner, zal simpleXML daar moeilijk over doen.
http://www.w3schools.com/php/php_xml_simplexml.asp
Er staan concrete voorbeelden.
---
De link die jij doorstuurt, zit al met een groot probleem: het bevat geen XML hoofding.
Bovenaan hoort iets als dit:
Voor zover ik me herinner, zal simpleXML daar moeilijk over doen.
Gewijzigd op 09/10/2013 16:00:56 door Kris Peeters
Ik gebruik deze code:
en hij heeft deze error: Notice: Trying to get property of non-object in C:\xampp\htdocs\webshop\index.php on line 24 (hier lijn 3). Ligt dit aan het feit dat er geen XML hoofding is of omdat ik iets fout doe?
Code (php)
1
2
3
4
2
3
4
<?php
$xml=simplexml_load_file("http://www.boardgamegeek.com/xmlapi/boardgame/13");
echo $xml->boardgames->boardgame->yearpublished;
?>
$xml=simplexml_load_file("http://www.boardgamegeek.com/xmlapi/boardgame/13");
echo $xml->boardgames->boardgame->yearpublished;
?>
en hij heeft deze error: Notice: Trying to get property of non-object in C:\xampp\htdocs\webshop\index.php on line 24 (hier lijn 3). Ligt dit aan het feit dat er geen XML hoofding is of omdat ik iets fout doe?
Zou wel kunnen.
Neem eens met de webmaster van die site contact op.
Neem eens met de webmaster van die site contact op.
Zoals ik suggereerde ... zolang die XML hoofding niet toegevoegd is, zal het - voor zover ik me herinner - met simpleXML niet werken.
Wat je kan doen, is de hoofding zelf toevoegen
Zie eens of dit helpt
--------------------
Ik heb dit uitgetest; dit werkt:
Wat je kan doen, is de hoofding zelf toevoegen
Zie eens of dit helpt
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$xml_file = "http://www.boardgamegeek.com/xmlapi/boardgame/13";
$xml_string = '<?xml version="1.0" encoding="ISO-8859-1"?>' . PHP_EOL . file_get_contents($xml_file);
$xmlget = simplexml_load_string($xml_string);
...
?>
$xml_file = "http://www.boardgamegeek.com/xmlapi/boardgame/13";
$xml_string = '<?xml version="1.0" encoding="ISO-8859-1"?>' . PHP_EOL . file_get_contents($xml_file);
$xmlget = simplexml_load_string($xml_string);
...
?>
--------------------
Ik heb dit uitgetest; dit werkt:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
// @see http://www.phphulp.nl/php/forum/topic/xml-parsen/92520/
$xml_file = "http://www.boardgamegeek.com/xmlapi/boardgame/13";
$xml_string = '<?xml version="1.0" encoding="ISO-8859-1"?>' . PHP_EOL . file_get_contents($xml_file);
$xml = simplexml_load_string($xml_string);
foreach ($xml->boardgame as $value){
echo $value->yearpublished .'<br>';
}
//echo '<pre>' . print_r($xmlget,1) . '</pre>';
?>
// @see http://www.phphulp.nl/php/forum/topic/xml-parsen/92520/
$xml_file = "http://www.boardgamegeek.com/xmlapi/boardgame/13";
$xml_string = '<?xml version="1.0" encoding="ISO-8859-1"?>' . PHP_EOL . file_get_contents($xml_file);
$xml = simplexml_load_string($xml_string);
foreach ($xml->boardgame as $value){
echo $value->yearpublished .'<br>';
}
//echo '<pre>' . print_r($xmlget,1) . '</pre>';
?>
Gewijzigd op 09/10/2013 16:44:40 door Kris Peeters
Dat zal wel werken, totdat de eigenaar zelf al de heading toe zou voegen, mits dat een bug in de site is.
Ja ... men kan zich moeilijk beschermen tegen services die hun service aanpassen zonder waarschuwing.
Heel erg bedankt voor het script het werkt inderdaad.
Ik kan proberen hen te contacteren, al betwijfel ik of dit invloed zal hebben, de site zit namelijk in de top 5000 sites van de wereld :-p
Ik kan proberen hen te contacteren, al betwijfel ik of dit invloed zal hebben, de site zit namelijk in de top 5000 sites van de wereld :-p
En dan nog steeds zulke slordige fouten???
Even een andere vraag, is het ook mogelijk om gewoon info te halen van een website, kan ik bevoorbeeld informatie halen van deze pagina (http://www.bordspelmania.eu/spellen/detail/kolonisten-van-catan-de_34.html), zo ja hoe moet ik dan te werk gaan?
Alvast bedankt
Alvast bedankt
En dan nog steeds zulke slordige fouten???
Toevoeging op 09/10/2013 17:29:34:
En dan nog steeds zulke slordige fouten???
Toevoeging op 09/10/2013 17:29:34:
En dan nog steeds zulke slordige fouten???
Tja, daar kan ik niets aan doen natuurlijk, ik heb even research gedaan en ik heb enkele potentiele mogelijkheden gevonden om data te extracten uit deze webpagina http://www.bordspelmania.eu/spellen/detail/kolonisten-van-catan-de_34.html
preg_match, curl of file_gets_contents wat zou de beste optie zijn, of bestaat er nog een betere mogelijkheid?
preg_match, curl of file_gets_contents wat zou de beste optie zijn, of bestaat er nog een betere mogelijkheid?
Louis Deconinck op 09/10/2013 17:09:44:
Heel erg bedankt voor het script het werkt inderdaad.
Ik kan proberen hen te contacteren, al betwijfel ik of dit invloed zal hebben, de site zit namelijk in de top 5000 sites van de wereld :-p
Ik kan proberen hen te contacteren, al betwijfel ik of dit invloed zal hebben, de site zit namelijk in de top 5000 sites van de wereld :-p
Vreemd argument. De meeste sites doen zeker wat met bugmeldingen van users. Bij mij reageerden nu.nl, marktplaats en tweakers adequaat op bugmeldingen en feedback.
Op de vraag over het uitlezen van een html-webpagina:
Het kan, maar de vraag is of het wenselijk is. Als de layout aan wordt gepast dan zal het parsen van je data stuk kunnen lopen.
Dus beter alles zelf in een datbase zetten en alles daaruit halen?
Zou kunnen, let wel een op de eventuele copyright/disclaimer informatie van de site. Niet alles mag je zomaar kopieeren i.v.m. copyright.
dat weet ik, maar het gaat dan ook over basisinformatie, zoals het aantal spelers van een spel bijv.




