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