مثالهای XPath
- صفحه قبلی عملگرهای XPath
- صفحه بعدی جمعبندی XPath
در این بخش، با استفاده از مثالها، به یادگیری برخی از گرامرهای پایه XPath میپردازیم.
مستند XML نمونه
در مثالهای زیر از این مستند XML استفاده خواهیم کرد:
"books.xml" :
<?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book category="آشپزی"> <title lang="fa">ایتالیایی روزمره</title> <author>گیادا دلورانتیس</author> <year>2005</year> <price>30.00</price> </book> <book category="کودکان"> <title lang="fa">هری پاتر</title> <author>جی. کی. رولینگ</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
انتخاب title اولین book
در این مثال، نقطهی title زیر bookstore انتخاب میشود:
/bookstore/book[1]/title
اینجا یک مشکل وجود دارد. مثالهای بالا در IE و مرورگرهای دیگر نتایج مختلفی را نشان میدهند.
نسخههای IE5 و بالاتر [0] را به عنوان اولین نقطه میبینند، در حالی که بر اساس استانداردهای W3C، باید [1] باشد.
برای حل مشکلات [0] و [1] در IE5+، میتوان برای XPath انتخاب زبان (SelectionLanguage) را تنظیم کرد.
در این مثال، نقطهی title زیر bookstore انتخاب میشود:
xml.setProperty("SelectionLanguage","XPath"); xml.selectNodes("/bookstore/book[1]/title");
انتخاب همه قیمتها
در این مثال، همه متنهای نقطههای price انتخاب میشوند:
/bookstore/book/price/text()
انتخاب نقطههای price با قیمت بیشتر از 35
در این مثال، همه نقطههای price که قیمت آنها بیشتر از 35 است انتخاب میشوند:
/bookstore/book[price>35]/price
انتخاب نقطههای title با قیمت بیشتر از 35
در این مثال، همه نقطههای title که قیمت آنها بیشتر از 35 است انتخاب میشوند:
/bookstore/book[price>35]/title
- صفحه قبلی عملگرهای XPath
- صفحه بعدی جمعبندی XPath