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

XML تعداد یا مجموعه ای خاص  تگ که شما حتماً باید به کار ببرید را برای شما مشخص نمی کند .

XML حساسیت زیادی درباره ی ساختار داکیومنت به خرج می دهد.

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 معتبر نیست.

‎<ul>

<li>

‎       Braised Sea Cucumber‎

<li>

‎       Baked Giblets with Salt‎

<li>

‎       Abalone with Marrow and Duck Feet‎

</ul>‎

این مثال یک داکیومنت XML معتبر نیست، به این خاطر که هیچ closing tag </li>  ای که با سه opening tag &lt;li> مچ شود و آن را تکمیل کند وجود ندارد.تمام تگ های باز در داکیومنت XML باید بسته شود.

لیست HTML که XML معتبر محسوب می شود.

‎<ul>

<li>Braised Sea Cucumber</li>‎

<li>Baked Giblets with Salt</li>‎

<li>Abalone with Marrow and Duck Feet</li>‎

</ul>‎

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

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

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

مثال

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

‎<?php‎

‎‎$channel =<<<_xml_‎ ‎

‎   <channel>‎

‎       ‎<title>‎

‎           What’s For Dinner<title>‎

‎               ‎<link>http://menu.example.com/<link>‎

‎               ‎<description>Choose what to eat ‎tonight.</description>‎

‎   </channel>‎

‎   ‎_XML_;‎

‎   ‎$xml = simplexml_load_string($channel);‎

‎   print “The $xml->title channel is available at $xml->link. “;‎

‎   print “The description is \”$xml->description\””;‎

‎   ‎?>‎

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

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 است می باشد. سپس شما تمام آرایه را تکرار می کنید و هر عنصر را با فرمت مناسب پرینت می گیرید.

مثال

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

‎<?php‎

‎ ‎

‎$channel = array(‘title’ => “What’s For Dinner”‎،

‎                 ‘link’ => ‘http://menu.example.com/’‎،

‎                 ‘description’ => ‘Choose what to eat tonight.’);‎

print “<channel>\n”;‎

foreach ($channel as $element => $content) {‎

‎   print ” <$element>”;‎

‎   print htmlentities($content);‎

‎ print “</$element>\n”;‎

‎}‎

print “</channel>”;‎

‎?>‎

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

‎<channel>

‎   ‎<title>What’s For Dinner</title>‎

‎   ‎<link>http://menu.example.com/</link>‎

‎   ‎<description>Choose what to eat tonight.</description>‎

</channel></html>‎