وباکا

آموزش تخصصی برنامه نویسی وب

آموزش XML در پی اچ پی- 3# پارسر SimpleXML – گرفتن مقادیر گره ها و صفات عناصر

SimpleXML یک توسعه از پی اچ پی است که اجازه می دهد به راحتی داده های XML را دستکاری و دریافت کنیم.

گرفتن مقادیر نودها با SimpleXML

مقدار گره را از فایل 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>

دریافت مقادیر عناصر مشخص با SimpleXML

مثال زیر مقدار گره <title> را در عناصر اول و دوم عنصر  <book> در فایل book.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

دریافت مقادیر گره توسط SimpleXML با حلقه تکرار

مثال زیر از طریق یک حلقه تکرار، کلیه عناصر عناصر <title>، <author>، <year> و <price> از عنصر <book> در فایل book.xml  به ما می دهد :

<?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

دریافت مقادیر صفات با SimpleXML

مثال زیر، مقدار صفت 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'];
?>

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

Everyday Italian
Harry Potter

گرفتن مقادیر صفات با حلقه تکرار

مثال زیر مقدار صفات همه عناصر <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

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

فهرست مطالب