PHP – پارسر SimpleXML (دریافت مقادیر نودها (Node) و صفات (Attributes))

پارسر SimpleXML یک افزونه‌ی PHP است که به ما امکان می‌دهد به راحتی داده‌های XML را دستکاری کنیم و دریافت کنیم.

دریافت مقادیر نودها (Node Values) با SimpleXML در PHP

مثال برای فایل “note.xml”

برای دریافت مقادیر نودها از فایل “note.xml”:

<?php
$xml = simplexml_load_file("note.xml") or die("Error: Cannot create object");
echo $xml->to . "<br>";
echo $xml->from . "<br>";
echo $xml->heading . "<br>";
echo $xml->body;
?>

خروجی کد بالا به این صورت خواهد بود:

Tove
Jani
Reminder
Don't forget me this weekend!

دریافت مقادیر نودهای خاص از یک فایل XML دیگر

فرض کنید یک فایل XML به نام “books.xml” داریم که به این صورت است:

<?xml version="1.0" encoding="utf-8"?>
<bookstore>
  <book category="COOKING">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
  </book>
  <book category="CHILDREN">
    <title lang="en">Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
  <book category="WEB">
    <title lang="en-us">XQuery Kick Start</title>
    <author>James McGovern</author>
    <year>2003</year>
    <price>49.99</price>
  </book>
  <book category="WEB">
    <title lang="en-us">Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
  </book>
</bookstore>

دریافت مقادیر نودهای خاص از فایل "books.xml"

مثال زیر مقدار نود <title> را در اولین و دومین عنصر <book> در فایل “books.xml” دریافت می‌کند:

<?php
$xml = simplexml_load_file("books.xml") or die("Error: Cannot create object");
echo $xml->book[0]->title . "<br>";
echo $xml->book[1]->title;
?>

خروجی کد بالا به این صورت خواهد بود:

Everyday Italian
Harry Potter

دریافت مقادیر نودها با استفاده از حلقه (Loop)

مثال زیر تمام نودهای <book> در فایل “books.xml” را مرور کرده و مقادیر نودهای <title>, <author>, <year> و <price> را دریافت می‌کند:

<?php
$xml = simplexml_load_file("books.xml") or die("Error: Cannot create object");
foreach($xml->children() as $books) {
  echo $books->title . ", ";
  echo $books->author . ", ";
  echo $books->year . ", ";
  echo $books->price . "<br>";
}
?>

خروجی کد بالا به این صورت خواهد بود:

Everyday Italian, Giada De Laurentiis, 2005, 30.00
Harry Potter, J K. Rowling, 2005, 29.99
XQuery Kick Start, James McGovern, 2003, 49.99
Learning XML, Erik T. Ray, 2003, 39.95

دریافت مقادیر صفات (Attribute Values) با SimpleXML در PHP

مثال زیر مقدار صفت “category” از اولین عنصر <book> و مقدار صفت “lang” از عنصر <title> در دومین عنصر <book> را دریافت می‌کند:

<?php
$xml = simplexml_load_file("books.xml") or die("Error: Cannot create object");
echo $xml->book[0]['category'] . "<br>";
echo $xml->book[1]->title['lang'];
?>

خروجی کد بالا به این صورت خواهد بود:

COOKING
en

دریافت مقادیر صفات با استفاده از حلقه (Loop)

مثال زیر مقادیر صفات عناصر <title> در فایل “books.xml” را دریافت می‌کند:

<?php
$xml = simplexml_load_file("books.xml") or die("Error: Cannot create object");
foreach($xml->children() as $books) {
  echo $books->title['lang'];
  echo "<br>";
}
?>

خروجی کد بالا به این صورت خواهد بود:

en
en
en-us
en-us

با استفاده از SimpleXML در PHP، شما می‌توانید به راحتی داده‌های XML را پردازش کنید و به مقادیر نودها و صفات دسترسی داشته باشید.

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
JavaScript - رویدادها (Events)

JavaScript – رویدادها (Events)

رویدادهای HTML رویدادها در HTML، “اتفاقاتی” هستند که برای عناصر HTML رخ می‌دهند. این اتفاقات می‌توانند ناشی از کار...

بیشتر بخوانید
JavaScript - سازنده‌های شیء (Object Constructors)

JavaScript – سازنده‌های شیء (Object Constructors)

ساخت آبجکت با تابع سازنده (Object Constructor Function) برای ساخت چندین آبجکت مشابه، از تابع سازنده استفاده می‌شود. این...

بیشتر بخوانید
JavaScript - نمایش شیء (Object Display)

JavaScript – نمایش شیء (Object Display)

نحوه نمایش آبجکت‌ها در جاوااسکریپت هنگام نمایش یک آبجکت جاوااسکریپت به صورت مستقیم، خروجی معمولاً به شکل [object Object]...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.