XPath چیست؟

20:59, 02/17,2017

دوستان سلام!

در این پست می­ خواهم در ادامه مطلب قبلی خود نکاتی تکمیلی در مورد XML را بیان کنم. من می ­خواهم XPath را معرفی کنم.

Xpath یا XML Path Language همانطور که از نام آن پیداست یک زبان مسیر بر روی XML است. این زبان برای انتخاب بخشی از کل فایل XMLاستفاده می­ شود.

فرض کنید که در فایل XML خود اطلاعات زیادی را با ساختاری خاص که توسط DTD یا XSD توصیف شده است، ذخیره کرده ­اید. حال می ­خواهید از این فایل استفاده کنید. مثلا می­ خواهید بدانید که آیا رکوردی به نام آقای xxx در فایل خود  دارید یا نه؟ یا اینکه اگر فایل شما نمرات دانشجویان را در خود دارد، می خواهید ببینید کدام یک از دانشجویان در درس xxx نمره ­ی زیر 15  کسب کرده ­اند. هر کدام از دو مورد ذکر شده یک پرس و جو (query) محسوب می ­شوند.

برای پاسخ به سوالات خود نیاز به Xpath دارید تا بتوانید اطلاعات مد نظر خود را از کل فایل XML ای که در اختیار دارید استخراج کنید. یکی از دلایل استفاده از این زبان این است که با توجه به حجیم بودن فایل XML خود، نمی­ توانید به صورت دستی (manual) خودتان کل فایل را جستجو کنید. زیرا در این روش احتمال بروز خطا وجود دارد.

این زبان همانند سایر زبان­ ها دارای نحوی خاص است. در ادامه یک مثال ارائه می ­شود. اما قبل از مشاهده مثال فرض کنید یک فایل XML مانند زیر وجود دارد. این فایل حاوی دستورات آشپزی برای تعدادی غذاست. در این فایل هر غذا شامل مواد تشکیل دهنده آن و نحوه پخت آن به صورت زیر  وجود دارد.

  

حال می­ خواهید بدانید که نام اولین ماده تشکیل ­دهنده ­ی اولین غذای موجود در این فایل چیست. برای این کار باید کد زیر را بنویسید:

string(doc ("recipes.xml" )//recipe[1]/ingredient[1]/@name)

اجرای این 1 خط کد، به شما خروجی روبرو را می ­دهد:                                  "beef cube steak"  

البته امکانات Xpath بسیار زیاد است و اینجا برای سادگی به ارائه همین مثال اکتفا می­­ کنم. اما برای کاربردهای واقعی باید با توابع مختلف و همچنین نحو آن کامل آشنا شوید. برای آشنایی کامل با Xpath از لینک زیر می­ توانید استفاده کنید.

https://www.w3schools.com/xml/xml_xpath.asp

موفق باشید...

 


 

مروری بر XML

18:55, 02/10,2017
 
به نام خدا
 
در این پست مروری مختصر بر روی XML خواهیم داشت. البته در همان ابتدا این نکته را بگویم که برای به کار گیری این زبان و تسلط بر تمام امکانات موجود در آن نیاز به مطالعه دقیق منابع دیگر وجود دارد.
 
یکی از زبان های مدل سازی داده که در مباحث وب معنایی استفاده می شود، زبان  XML است. این زبان حالت نمایشی خاصی ندارد. در واقع مانند HTML رندر نمی شود. برای همین است که زبان XML را زبانی برای مدل سازی داده می شناسند.
با به کار گیری این زبان می توانیم:
1- نحوه نمایش داده را از ذخیره سازی آن جدا کنیم. یعنی خود داده را در فایل خود نگهداری کنیم و در صورت نیاز از ابزارهای دیگری برای نمایش مناسب آن استفاده کنیم.
2- برای تبادل داده بین چند سیستم استفاده کنیم.
3- حتی زبان خاصی با گرامر مورد نظر خود را توسعه دهیم! (مانند WML که سال ها پیش توسعه یافت) 
اما برای ایجاد مدلی از داده های خود نیاز به فایلی داریم تا بتوانیم قالب کلی مدل را بیان کنیم. در اینجا دو نوع زبان مطرح می شوند که به ما در ایجاد ساختار کلی مدل خود کمک می کنند. همانطور که گفته شد ما نیاز به یک فایل توصیف کننده ساختار مدل خود داریم و در نتیجه می برای اینکار کافی است یا از مورد اول و یا دوم استفاده کنیم:
 1- DTD
 2- XML Schemas که با عنوان XSD نیز شناخته می شوند.
البته مورد دوم از مورد اول قوی تر بوده و جایگزینی برای مورد اول محسوب می شود. در اینجا به ارائه دو دلیل می پردازیم:
در مورد اول نحوی غیر از آنچه در XML وجود دارد استفاده می شود که این باعث می شود تا پارسری را داشته باشیم تا بتوانیم با این فایل کار کنیم. همچنین امکانات تعریف تگ در مورد اول نسبت به مورد دوم کمتر است. 
 
شاد باشید ...  

 

سلام

22:05, 10/19,2016
سلام دوستان!!