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

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
Python - محدود کردن داده (MongoDB Limit)

Python – محدود کردن داده (MongoDB Limit)

Python MongoDB محدود کردن نتایج برای محدود کردن نتایج در MongoDB، از متد limit() استفاده می‌کنیم. متد limit() یک...

بیشتر بخوانید
Python - بروزرسانی (MongoDB Update)

Python – بروزرسانی (MongoDB Update)

به‌روزرسانی یک رکورد برای به‌روزرسانی یک رکورد یا سند در MongoDB، از متد update_one() استفاده می‌کنیم. پارامتر اول متد...

بیشتر بخوانید
Python - حذف کالکشن (MongoDB Drop Collection)

Python – حذف کالکشن (MongoDB Drop Collection)

حذف کالکشن شما می‌توانید یک جدول یا کالکشن در MongoDB را با استفاده از متد drop() حذف کنید. مثالحذف...

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

نظرات

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

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