آموزش کار با فایل های XML در php

  • خانه
  • آموزش کار با فایل های XML در php
Image تحقیقات

آموزش کار با فایل های XML در php

با سلام و درود

در این قسمت به معرفی کوتاهی در مورد چگونگی کاربا فایل های XML در زبان php می پردازیم .

در PHP ، روش هایی مثل XML Expat Parser و XML DOM و XML SimpleXML برای پردازش اطلاعات فایل های XML وجود دارد، که در این مبحث، قصد داریم اندکی در مورد SimpleXML شرح بدهیم.

فرض کنید یک فایل XML با نام example.xml داریم که دارای کدهای زیر می باشد (یک سری تگ را با نام های دلخواه در آن تعریف کرده ایم) :

<xml version="1.0" encoding="UTF-8"?>
<information>
<name>hamid</name>
<age>20</age>
<language>persian</language>
<city>tehran</city>
</information>

برای دیدن ساختار اطلاعات موجود در فایل example.xml ، کدهای PHP زیر را در یک فایل PHP نوشته و فایل PHP را اجرا می کنیم :

<?php
$xml=simplexml_load_file("example.xml");
echo "<pre>";
print_r($xml);
echo "</pre>";

خروجی :

SimpleXMLElement Object
(
    [name] => hamid
    [age] => 20
    [language] => persian
    [city] => tehran
)

اکنون فرض کنید که تنها بخواهیم اطلاعات مربوط به تگ (tag) با نام name را نمایش بدهیم، برای این منظور، کدهای PHPزیر را می نویسیم :

<?php
$xml=simplexml_load_file("example.xml");
$name=$xml->name;
echo $name;

خروجی :

hamid

 دسترسی به مشخصه های (attributes) تگ ها (tags) در فایل XML :

همان طور که می دانید، در فایل XML ، هر تگ (tag) می تواند دارای تعدادی مشخصه (attribute) باشد. مثلا فرض کنید تگ name که در مثال قبل به کار بردیم، دارای یک مشخصه با نام family باشد :

<name family="heidari">hamid</name>

بنابراین باید روشی نیز برای فراخوانی مشخصه های تگ ها داشته باشیم. برای آشنایی با روش فراخوانی مشخصه ها در فایل XML ، به مثال زیر توجه کنید :

مثال :

همان فایل example.xml مثال قبل را این بار کمی تغییر می دهیم (افزودن یک مشخصه به تگ name) :

<?xml version="1.0" encoding="UTF-8"?>
<information>
<name family="heidari">hamid</name>
<age>20</age>
<language>persian</language>
<city>tehran</city>
</information>

حال ابتدا کل ساختار فایل XML را با کدهای PHP نمایش می دهیم :

<?php
$xml=simplexml_load_file("example.xml");
echo "<pre>";
print_r($xml);
echo "</pre>";

خروجی :

SimpleXMLElement Object
(
    [name] => hamid
    [age] => 20
    [language] => persian
    [city] => tehran
)

اکنون تنها مشخصه family از تگ name را نمایش می دهیم :

<?php
$xml=simplexml_load_file("example.xml");
$family = $xml->name->attributes()->family;
echo $family;

خروجی :

heidari

حالا یه مثال دیگه ای رو بررسی می کنیم :

فرض کنیم XML ما میخواهیم با استفاده از foreach داخل فایل XML پیمایش کنیم و تمام family هارو چاپ کنیم :

فایل xml شامل :

<?xml version="1.0" encoding="UTF-8"?>
<info>
<information>
	<name family="heidari">hamid</name>
	<age>20</age>
	<language>persian</language>
	<city>tehran</city>
</information>
<information>
	<name family="shahabi">ali</name>
	<age>25</age>
	<language>persian</language>
	<city>tehran</city>
</information>
</info>

کد پی اچ ما  :

<?php
$xml=simplexml_load_file("test.xml");


foreach ($xml->information as $key => $value)
 {
	echo ($value->name->attributes()->family). '<br>';
}

همانطور که در بالا مشاهده می نمایید داخل حلقه foreach محتوای تگ information را یکی یکی پیمایش می کنیم و صفت فامیلی هر کدام را چاپ می نماییم :

خروجی :

heidari
shahabi

خب امیدوارم آشنا شده باشین با طریقه کار با  SimpleXML .

موفق و پیروز باشید.

برگرفته از سایت کلیدستان