O.b.v. een xml structuur die ik heb aangeleverd gekregen van de overheid wil ik gegevens van mijn site kunnen doorsturen. Aan deze xml structuur kan ik niets wijzigen en deze bevat tag met en zonder namespaces. Ik ben aan het experimenteren met xml. Xml zonder namespaces krijg ik verwerkt binnen php. Ook xml met enkel namespaces lukt. Wil ik een xml structuur gebruiken waarin tags worden gecombineerd met en zonder namespaces dan verschijnt er niets, een gedeelte of verkeerde info op mijn scherm. Foutmeldingen krijg ik niet, alleen als ik de voornaam ($Vnaamdata) wil echoën. Kan iemand mij vertellen wat ik verkeerd doe ?
Dit is mijn code.

$xml = '<voorbeeld xmlns:kennis="link"
					xmlns:tagg="verbinding"
					xmlns:aanhef="doorgang"
					xmlns:voornaam="verwijzing"
					xmlns:achternaam="brug"
					xmlns:hobby="my.foo.urn">

		<kennis> 
		  <tagg:a>
			<aanhef:a>Mevr </aanhef:a>
			<persoon>
				<voornaam:a>Caro</voornaam:a>
				<achternaam:a>Emerald gaat</achternaam:a>
				<hobby:a> graag zingen </hobby:a>
			</persoon>
		  </tagg:a>
		</kennis>
		<kennis>
		  <tagg:b>
			<aanhef:b>Dhr </aanhef:b>
			<persoon>
				<voornaam:b>Bas</voornaam:b>
				<achternaam:b>van de Ven</achternaam:b>
				<hobby:b> drummen </hobby:b>
			</persoon>
		  </tagg:b>
		</kennis> 
		<kennis>
		  <tagg:c>
			<aanhef:c>Jongeman </aanhef:c>
			<persoon>
				<voornaam:c>Ruben</voornaam:c>
				<achternaam:c>Verhoeven</achternaam:c>
				<hobby:c> voetballen </hobby:c>
			</persoon>
		  </tagg:c>
		</kennis> 

</voorbeeld>' ;

$sxe = new SimplexmlElement($xml)  ;

foreach($sxe->kennis as $kennis) {
	$tagdata = $kennis->children('verbinding'); // EXTRA TAG
	$aanhefdata = $tagdata->children('doorgang');//AANHEF

	echo $tagdata->a.$aanhefdata->a;

	foreach($tagdata->kennis as $persoon) {
	
	$Vnaamdata = $persoon->children('verwijzing');	//VOORNAAM
	$Anaamdata = $persoon->children('brug');// ACHTERNAAM
	$hobbydata = $persoon->children('my.foo.urn');//HOBBY
	
	
	echo $tagdata->a.$aanhefdata->a.$Vnaamdata->a.$Anaamdata->a.$hobbydata->a;
	echo $tagdata->b.$aanhefdata->b.$Vnaamdata->b.$Anaamdata->b.$hobbydata->b;
	}

	echo $tagdata->b.$aanhefdata->b.$Anaamdata->b.$hobbydata->b;	
	echo $tagdata->c.$aanhefdata->c.$Anaamdata->c.$hobbydata->c;
echo '<br/>';	
	
	}
wat geeft print_r($sxe); ?
Dit resultaat :
SimpleXMLElement Object ( [kennis] => Array ( [0] => SimpleXMLElement Object ( ) [1] => SimpleXMLElement Object ( ) [2] => SimpleXMLElement Object ( ) ) )

Reageren