وبلاگ فيکسل برای گرافيست ها
SharpLife وبلاگ شخصی مهدی تقی زاده
بازگشت شاهو طوفانی
اين صداگذاری و ميکس آخرشه!
نکته جالبی در مورد تابع output_add_rewrite_var
کاراکتر های فارسی در عکس توسط PHP
مصاحبه من با مجله وزین IranAMP
واژه های فناوری اطلاعات و برابر های پیشنهادی فرهنگستان
دوره های آموزش IT
استانداردهای کدنويسی PHP
| صفحه قبل


IranPHP
نماينده رسمي سايت PHP.net

webilix
منبعي براي برنامه نويسان PHP

phprun
وبلاگي خواندني براي تمام PHP كارها

ם تعداد بازديدكنندگان
كل: 924716
ديروز: 915
امروز: 766
ם تعداد كاربران آنلاين
7 نفر
ם پنج مراجعه آخر
serx.wml.in
djdgjkfbf.chez.com
serx.wml.in
xroy.wop.su
www.p30download.com
 
 
PHP 5 و XML (قسمت سوم)
XPath در بخش سوم اين سلسله مقالات، می خواهم در مورد XPath صحبت کنم. روش ديگری که برای بازيابی يک المنت خاص از درخت DOM وجود دارد استفاده از زبان پرس و جوی XPath می باشد که خوشبختانه توسط توسعه SimpleXML پشتيبانی می شود. XPath زبانی برای آدرس دهی اجزای يک سند XML است که توسط کنسرسيوم وب جهانی(W3C) به تصويب رسيده است. اين زبان يک سند XML را مانند يک سيستم فايل در نظر می گيرد که هر المنت می توانند نقش فايل يا دايرکتوری را بازی کنند و همانطور که برای دستيابی يا اجرای يک فايل مسير آن را در سیستم فایل مشخص می کنيم، برای دسترسی به يک المنت هم به شيوه ای مشابه عمل می کنيم. همچنين به کمک XPath می توان يک المنت خاص در سند XML را بدون توجه به مکان آن جستجو کرد.
در تکه کد زير از طريق اين زبان به محتويات متنی دومین المنت a دسترسی خواهيم داشت؛ نکته ای که مد نظر بايد قرار داد اين است که در XPath بر خلاف آرایه های PHP، شمارش المنتها از عدد یک شروع می شود نه صفر.

<?php
$s 
'<xml><b><a id="1">One</a><a id="3">Two</a></b></xml>';
$r simplexml_load_string($s);
echo 
array_pop($r->xpath("//a[2]/text()"));
?>

خروجی متد ()xpath آرايه ای از المنتهایی است که با مسير داده شده مطابقت دارند و در صورتی که هيچ موردی يافت نشود، مقدار False برگردانده می شود. هر المنت يا عنصر آرايه، يک آبجکت بوده که حاوی مقادير المنت تطبیق داده شده از سند XML است. در مثال بالا مقدار "Two" چاپ می شود.
جستجو به دنبال المنتی که خصیصه (Attribute) آن دارای مقدار معینی است هم همانطور که در تکه کد پایین مشاهده می کنید به سادگی امکان پذیر است. SimpleXML با بهره گیری از تسهیلاتی که کتابخانه libxml2 در اختیار گذاشته، در سند XML به دنبال المنت(های) a ای می گردد که دارای خصیصه id بوده و مقدار این خصیصه برابر با ۳ باشد. دقت داشته باشید که وقتی از زبان پرس و جوی XPath برای جستجو در سند XML استفاده می کنید، بخصوص اسناد بزرگ، این عمل با کندی صورت می پذیرد. بنابراین اگر از مکان داده های خود در سند XML اطلاع دارید بهتر است همانطور که در مثالهای بالا بررسی شد به طور دستی مسیر را مشخص کنید.

<?php
$s 
'<xml><b><a id="1">One</a><a id="3">Two</a></b></xml>';
$r simplexml_load_string($s);
echo 
array_pop($r->xpath("//a[@id=3]"));
?>

جدا از امکان بازيابی داده ها از اسناد XML، توسعه SimpleXML امکان تغيير و اصلاح اسناد موجود را نيز می دهد. لکن اين تغيير تنها بر روی المنتهای موجود در سند قابل انجام است و نمی توان المنت جديدی را به سند افزود. فرآيند اصلاح داده ها نيز بسيار ساده است و تمام کاری که بايد بکنيد اينست که مقدار عددی يا رشته کاراکتری جديد را به Property(مقدار المنت) يا کليد آرايه(خصیصه (Attribute)) مورد نظر نسبت دهيد. در آخر سند اصلاح شده را می توان در خروجی چاپ کرد و يا در فايلی ذخيره کرد.

<?php
$s 
'<xml><b><a id="1">One</a><a id="2">Two</a></b></xml>';
$r simplexml_load_string($s);
$r->b->a[0]['id'] = 5// modify attribute of 1st <a> element
$r->b->a[1] = "Three"// modify value of 2nd <a> element
echo $r->asXML(); // print modified XML
?>


 
نظرات شما(90)  

 
 
نام: نيما شايافر
متولد: 7/7/1362
تحصيلات: دانشجو
شغل: طراح وب و برنامه نويس
وضعيت: آفلاين

ماهيانه
مرداد 86 (2)
خرداد 86 (1)
دي 84 (4)
آذر 84 (5)
مرداد 84 (1)
تير 84 (1)
ارديبهشت 84 (2)
دي 83 (1)
آذر 83 (2)
آبان 83 (2)
مهر 83 (4)
شهريور 83 (6)
مرداد 83 (3)
تير 83 (7)
خرداد 83 (7)
ارديبهشت 83 (8)
فروردين 83 (13)
اسفند 82 (12)

موضوعي






جستجوي پيشرفته

BlogRolling is currently inaccessible.
©2004, Design & Developed by: Nima Shayafar. All rights reserved.