• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

كار با SimpleXML : خطايابي فرماييد

moslem-visual

Registered User
تاریخ عضویت
22 مارس 2006
نوشته‌ها
15
لایک‌ها
0
سلام، خيلي وقت بود ميخواستم كار با XML در PHP 5 رو تجربه كنم، در مورد سادگي SimpleXML نسبت به SAX زياد شنيده بودم، امروز يه كد بر اساس چيزايي كه توي اينترنت ياد گرفتم نوشتم اما نميدونم چرا وقتي به foreach ميرسه Invalid Argument ميده، همينكار رو با متد children هم امتحان كردم اما با اون روش هم خطاي Not found function ميده، خلاصه گيج شدم، چندبار هم كنترل كردم اما مشكلش رو نفهميدم، ممنون ميشم اساتيد و دوستان محترم يه راهنمايي بفرمايند، در ضمن از Wamp 2.0 استفاده ميكنم، متشكر.

فايل XML مورد استفاده :
HTML:
<?xml version="1.0" encoding="utf-8"?>

<personels>

	<person id="1" name="Yannick" family="Van De Falde" country="Netherlands">
	
		<experts>
			<expert>Programming</expert>
			<expert>Actor</expert>
			<expert>Model</expert>
		</experts>
		
		<languages>
			<language>Danish</language>
			<language>English</language>
			<language>Francis</language>
		</languages>
		
	</person>
	
	<person id="2" name="Max" family="Thieriot" country="United States of America">
		
		<experts>
			<expert>Actor</expert>
			<expert>Football</expert>
			<expert>Model</expert>
			<expert>Windows</expert>
		</experts>
		
		<languages>
			<language>English</language>
			<language>Francis</language>
		</languages>
		
	</person>
	
</personels>


اسكريپت :
PHP:
<?php
$xml = simplexml_load_file('simplexml_test.xml');

echo "<h2>Today guests:</h2>
<br/><br/>";

foreach($xml->personels->person as $person){

	echo '<b>' . $person['name'] . ' ' . $person['family'] . '</b> from ' . $person['country'];
	echo '<br/><b>Experts :</b><br/>';
	
	foreach($person->experts->expert as $expert){
		echo '&rsaquo;' . $expert . '<br/>';
	}
	
	echo '<br/><b>Languages :</b><br/>';
	
	foreach($person->languages->language as $language){
		echo '&rsaquo;' . $language . '<br/>';
	}
	
	echo '<br/><br/>';
}
?>
 
بالا