XML در php

XML در php

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

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

XML یک زبان markup هست که شباهت زیادی به HTML دارد. XML document یک متن ساده هست که دربردانده ی tag های محصور و قرار گرفته در علامت < and > می باشد. دو تفاوت عظیم بین XML و HTML وجود دارد. XML تعداد یا مجموعه ای خاص  تگ که شما حتماً باید به کار ببرید را برای شما مشخص نمی کند . XML حساسیت زیادی درباره ی ساختار داکیومنت به خرج می دهد.

 

XML در php xml در php XML در php xml in php themeina

XML در php

XML آزادی عمل بیشتری نسبت به HTML به شما می دهد.HTML تعداد خاصی tag دارد: تگِ <a></a> tag که پیرامون لینک را فرا می گیرد، startsa paragraph   و غیره. اما داکیومنت XML به شما اجازه می دهد هر تگی که دوست دارید استفاده کنید. تگ های &lt;rating></rating> را می توانید اطراف امتیاز فیلم {movie rating} و &lt;height></height> در اطراف قدِ کسی قرار دهید. بنابراین XML به شما اجازه می دهد، تگ های خود را بسازید.

XML درباره ی ساختار داکیومنت بسیار سخت گیر و ریزبین است. در حالی که HTML به شما اجازه می دهد با opening tags و closing tags بازی کنید و آن ها را باب میل خود کمی تغییر دهید. اما چنین شرایطی درمورد XML صادق نیست.

فهرست HTML که XML معتبر نیست.

تجزیه ی {parsing} یک داکیومنت XML

ماژول جدید SimpleXML، نسخه ی ۵PHP تجزیه داکیومنت  XML را بسیار آسان می کند. در واقع، داکیومنت XML را به object ای تبدیل می کند که دسترسی ساختارمند و سازمان یافته به XML در اختیار شما قرار می دهد.

برای ساختن شی {object} SimpleXML از داکیومنت XML که در یک string ذخیره شده باشد ،رشته را به simplexml_load_string( ) ارسال کنید.در جواب، یک شی SimpleXML بازمی گرداند.

 

نتیجه ی زیر حاصل می گردد.

The What’s For Dinner channel is available at http://menu.example.com/. The description is “Choose what to eat tonight.”

توجه

اگر محتوای {content} XML در فایلی به صورت ذخیره دارید،می توانید از تابعsimplexml_load_file filename استفاده کنید.

ساختن داکیومنت XML

SimpleXML گزینه ی مناسبی برای تجزیه ی {parsing} داکیومنت XML موجود و از پیش ساخته شده است، اما نمی توانید از آن برای ساختن یک داکیومنت جدید استفاده کنید.

آسان ترین راه برای ساختن داکیومنت XML، به وجود آوردن یک آرایه ی PHP که ساختارش شبیه به ساختار داکیومنت XML است می باشد. سپس شما تمام آرایه را تکرار می کنید و هر عنصر را با فرمت مناسب پرینت می گیرید.

SimpleXML چیست

PHP چندین روش برای تجزیه فایل های XML ارائه می دهد که معمولترین آنها استفاده از SimpleXML است. SimpleXML تمام محتویات فایل XML را خوانده و ان را تبدیل به آرایه ای از اشیاء می کند. امتیاز SimpleXML این است که برای خواندن محتویات فایل XML نیاز به کدنویسی ندارید. قبل از شروع به یادگیری SimpleXML نگاهی به برخی از متدهای پرکاربرد آن می اندازیم :

توابع SimpleXML

تابع توضیح
__construct() یک شیء جدید از SimpleXMLElement ایجاد می کند.
addAttribute() یک خاصیت به عنصر خاص اضافه می کند.
addChild() یک زیر گره به یک گره خاص اضافه می کند.
asXML() فایل XML را در قالب یک رشته بر می گرداند.
attributes() خاصیت ها/مقادیر یک عنصر را بر می گرداند.
children() گره های فرزند یک گره خاص را بر می گرداند.
count() تعداد زیر گره های یک گره خاص را می شمارد.
getDocNamespaces() فضای نام تعریف شده در سند را بر می گرداند.
getName() نام گره XML را بر می گرداند.
getNamespaces() فضای نام استفاده شده در سند را بر می گرداند.
saveXML() مترادف asXML()
simplexml_load_file() یک فایل XML را به شیء SimpleXMLElement تبدیل می کند.
simplexml_load_string() یک رشته XML را به شیء SimpleXMLElement تبدیل می کند.

 

توابع گردش در SimpleXML

تابع توضیح
current() گره جاری را بر می گرداند.
getChildren() زیرگره های گره جاری را بر می گرداند.
hasChildren() چک می کند که آیا گره جاری دارای زیر گره ای است یا نه؟
key() کلید جاری را بر می گرداند.
next() حرکت به سمت گره بعدی
rewind() رفتن به عنصر اولی
valid() چک می کند که آیا گره جاری معتبر است یا نه؟

 

فرض کنید می خواهیم همان فایل XML درس قبل را با استفاده از SimpleXml ایجاد کنیم :

همانطور که در کد بالا مشاهده می کنید تنها کاری که ما انجام داده ایم این است که ساختار مورد نظرمان را در داخل یک رشته (خطوط ۱۸-۲) نوشته و سپس به سازنده کلاس SimpleXMLElement (خط ۲۰) ارسال و در نهایت با استفاده از متد ()saveXML ذخیره کرده ایم. به همین راحتی! با این اجرای کد بالا فایل XML مورد نظرمان ایجاد می شود. همانطور که در کد بالا مشاهده می کنید گره اصلی (Persons) شامل سه گره فرزند (Person) است و هر گره فرزند خود دارای سه گره فرزند Name،Age و Gender می باشد.

بارگذاری یا Load فایل XML

برای خواندن فایل XML از متد ()simplexml_load_file استفاده می شود :

همانطور که در خروجی بالا مشاهده می کنید گره یا عنصر اصلی (Persons) آرایه ای از اشیاء Person است. که این آرایه خود دارای سه عنصر می باشد. که این عناصر همان گره های موجود در فایل XML هستند. هر عنصر در این آرایه یک شی است که شامل خاصیت های Name، Age و Gender می باشد. با این فایل XML در درس های آینده کار می کنیم.

مثال زیر را خود امتحان کنید.

نتیجه ی زیر حاصل می گردد.

 

آموزش PHP آموزش طراحی وب

یک نظر

  1. ممنون عالی بود

دیدگاه خود را بیان کنید