Jump to content

Trying to get property of non-object / simplexml / foreach = failed


Death_Octimus

Recommended Posts

yo going mad trying to get this simple bit of code to work but its skipping the first element!

 

keeping giving out

 

"Notice: Trying to get property of non-object in C:\xampp\htdocs\1985\bunker\index.php on line 15"

 

even tried cheating with

echo display("name","-1");

but it cuts out last element  :confused:

 

xml file

<catalog>

<module>
  <name>First</name>
  <size>1x1</size>
  <description>Floor Tile</description>
  <iscorner>0</iscorner>
  <isstraight>0</isstraight>
  <isdoorframe>0</isdoorframe>
  <addons>0</addons>
  <normalmap>0</normalmap>
  <texturemap>0</texturemap>
  <uv>0</uv>
  <image>null</image>	
</module>

</catalog>

 

php file

<?php 

//load up XML
$xmldata = simplexml_load_file('data.xml');

//Check for error
if ($xmldata == true) {

function display ($input, $n) {		

	global $xmldata;

	foreach ($xmldata as $xmldata["module"] => $key) {

	echo $xmldata->module[$n]->$input . "<br />";
	$n++;

	}
}

} else {
die("aghhh error XML missing or unreadable!");
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Bunker Catalog</title>
</head>

<body>
<?php

echo display("name","0");

?>
</body>
</html>

 

any help !

foreach ($xmldata as $xmldata["module"] => $key) {

 

You shouldn't be using $xmldata["module"] here - it should be a fresh variable, such as $module.  I don't know if that's the cause of the problem but fixing that would be a good start.  If you don't use the key at all (I'm talking about the array key named $xmldata["module"], not the $key variable) then you can just leave it out and do:

 

foreach ($xmldata as $key) {

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.