مثال XPath
- صفحه قبلی عملگرهای XPath
- صفحه بعدی مقدمه بر XSLT
در این بخش، اجازه دهید با استفاده از مثالها، زبان XPath پایهای را یاد بگیریم.
مستند XML نمونه
ما در مثالهای زیر از این مستند XML استفاده خواهیم کرد:
"books.xml" :
<?xml version="1.0" encoding="ISO-8859-1"?> <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">XQuery Kick Start</title> <author>James McGovern</author> <author>Per Bothner</author> <author>Kurt Cagle</author> <author>James Linn</author> <author>Vaidyanathan Nagarajan</author> <year>2003</year> <price>49.99</price> </book> <book category="WEB"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore>
بارگذاری مستند XML
تمام مرورگرهای مدرن از روش XMLHttpRequest برای بارگذاری مستند XML پشتیبانی میکنند.
برای کدهای بیشتر مرورگرهای مدرن:
var xmlhttp=new XMLHttpRequest()
برای کدهای قدیمی مرورگرهای مایکروسافت (IE 5 و 6):
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
انتخاب گره
متاسفانه، Internet Explorer و دیگر مرورگرها از روشهای مختلفی برای پردازش XPath استفاده میکنند.
در مثال ما، کدهایی شامل بیشتر مرورگرهای اصلی قرار داده شده است.
Internet Explorer از روش selectNodes() برای انتخاب گرهها از مستند XML استفاده میکند:
xmlDoc.selectNodes(xpath);
Firefox، Chrome، Opera و Safari از روش evaluate() برای انتخاب گرهها از مستند XML استفاده میکنند:
xmlDoc.evaluate(xpath, xmlDoc, null, XPathResult.ANY_TYPE,null);
تمام titleها انتخاب شوند
در مثال زیر، تمامی گرههای title انتخاب میشوند:
/bookstore/book/title
عنوان اولین book انتخاب شود
در مثال زیر، گره title اولین گره book زیر bookstore انتخاب میشود:
/bookstore/book[1]/title
اینجا یک مشکل وجود دارد. مثال بالا در IE و دیگر مرورگرها نتایج متفاوتی تولید میکند.
نسخههای IE5 و بالاتر [0] را به عنوان اولین گره در نظر میگیرند، در حالی که بر اساس استانداردهای W3C باید [1] باشد.
برای حل مشکل [0] و [1] در IE5+، میتوان برای XPath انتخاب زبان (SelectionLanguage) را تنظیم کرد.
در مثال زیر، گره title اولین گره book زیر bookstore انتخاب میشود:
xml.setProperty("SelectionLanguage","XPath"); xml.selectNodes("/bookstore/book[1]/title");
تمام قیمتها انتخاب شوند
در مثال زیر، تمامی متنهای گره price انتخاب میشوند:
/bookstore/book/price/text()
انتخاب گرهای با قیمت بالاتر از 35
مثالی که انتخاب همه nodes price با قیمت بیشتر از 35 را نشان میدهد:
/bookstore/book[price>35]/price
انتخاب nodes title با قیمت بیشتر از 35
مثالی که انتخاب همه nodes title با قیمت بیشتر از 35 را نشان میدهد:
/bookstore/book[price>35]/title
- صفحه قبلی عملگرهای XPath
- صفحه بعدی مقدمه بر XSLT