moslem-visual
دوشنبه 11 آذر 1387, 15:11 عصر
سلام، خيلي وقت بود ميخواستم كار با XML در PHP 5 رو تجربه كنم، در مورد سادگي SimpleXML نسبت به SAX زياد شنيده بودم، امروز يه كد بر اساس چيزايي كه توي اينترنت ياد گرفتم نوشتم اما نميدونم چرا وقتي به foreach ميرسه Invalid Argument ميده، همينكار رو با متد children هم امتحان كردم اما با اون روش هم خطاي Not found function ميده، خلاصه گيج شدم، چندبار هم كنترل كردم اما مشكلش رو نفهميدم، ممنون ميشم اساتيد و دوستان محترم يه راهنمايي بفرمايند، در ضمن از Wamp 2.0 استفاده ميكنم، متشكر.
فايل XML مورد استفاده :
<?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
$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 '›' . $expert . '<br/>';
}
echo '<br/><b>Languages :</b><br/>';
foreach($person->languages->language as $language){
echo '›' . $language . '<br/>';
}
echo '<br/><br/>';
}
?>
فايل XML مورد استفاده :
<?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
$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 '›' . $expert . '<br/>';
}
echo '<br/><b>Languages :</b><br/>';
foreach($person->languages->language as $language){
echo '›' . $language . '<br/>';
}
echo '<br/><br/>';
}
?>