Hallo mensen,

Ik dacht, laat ik eens wat proberen met XML.
Ik heb al een aantal scripts geprobeerd maar bij allemaal krijg ik oneindige foutmeldingen.

Daarom wil ik graar jullie manier om php te verwerken weten.

Dit is mijn XML:

<?xml version="1.0" encoding="UTF-8"?>
<persoon>
	<naam>Piet</naam>
	<leeftijd>45</leeftijd>
</persoon>
<persoon>
	<naam>Jan</naam>
	<leeftijd>54</leeftijd>
</persoon>


Hoe kan ik er dit uit laten komen:

Piet is 45 jaar oud
Jan is 54 jaar oud

Groet
Pascal
Wat heb je al precies geprobeerd waar de fouten/foutmeldingen uit komen?

Probeer bijvoorbeeld eens:

<?php
// foutmeldingen aanzetten
ini_set('display_errors', 'On');
error_reporting(E_ALL | E_STRICT);

$xmlbestand = ''; // hier vul je dan de url van je xml bestand in

if($xml = simplexml_load_file($xmlbestand)){

	foreach($xml->persoon AS $persoon){
	echo $persoon->naam.' is '.$persoon->leeftijd.' jaar oud <br>';
	}

}
?>
En dan heb ik het bewerkt tot hij bij mijn xml past

Post die bewerking hier eens dan (tussen code tags)
Heb je al gekeken naar SimpleXML?

<?php
$xml=simplexml_load_file("namenlijst.xml");
foreach($xml->persoon as $persoon) {
echo $persoon->naam. " is ".$persoon->leeftijd." jaar oud.<br />";

}
?>

Als het goed is moet dit werken.
Ik heb nu deze code:

<?php

$xmlbestand = 'f/personen.xml'; // hier vul je dan de url van je xml bestand in

if($xml = simplexml_load_file($xmlbestand)){

foreach($xml->persoon AS $persoon){
echo $persoon->naam.' is '.$persoon->leeftijd.' jaar oud <br>';
}

}


?>

en ik krijg deze foutmeldingen:


Warning: simplexml_load_file(): f/personen.xml:6: parser error : Extra content at the end of the document in C:\Users\pascal\Box Sync\localhost\xmlapps\index.php on line 5

Warning: simplexml_load_file(): <persoon> in C:\Users\pascal\Box Sync\localhost\xmlapps\index.php on line 5

Warning: simplexml_load_file(): ^ in C:\Users\pascal\Box Sync\localhost\xmlapps\index.php on line 5
Je kan geen dubbele parent-nodes gebruiken in je XML.
Gebruik dan dit:

<?xml version="1.0" encoding="UTF-8"?>
<personen>
	<persoon>
   		<naam>Piet</naam>
   		<leeftijd>45</leeftijd>
	</persoon>
	<persoon>
    		<naam>Jan</naam>
    		<leeftijd>54</leeftijd>
	</persoon> 
</personen>


<?php
$xml=simplexml_load_file("namenlijst.xml");
foreach($xml->personen as $persoon) {
echo $persoon->naam. " is ".$persoon->leeftijd." jaar oud.<br />";

}
?>
Nu werkt het! Bedankt!

Reageren