توابع XPath، XQuery و XSLT
- صفحه قبل خلاصه XPath
- صفحه بعدی آموزش XPath
توابع دسترسی
نام | توضیحات |
---|---|
fn:node-name(node) | بازگشت نام نود پارامتر. |
fn:nilled(node) | بازگشت مقدار بولین که نشاندهنده رد کردن نود پارامتر است. |
fn:data(item.item,...) | پذیرش توالی از عناصر و بازگشت توالی از مقادیر اتمی. |
|
بازگشت مقدار ویژگی base-uri برای نود فعلی یا مشخص شده. |
fn:document-uri(node) | بازگشت مقدار ویژگی document-uri برای نود مشخص شده. |
توابع خطا و ردیابی
نام | توضیحات |
---|---|
|
مثال: error(fn:QName('http://example.com/test', 'err:toohigh'), 'Error: Price is too high') نتیجه: به محیط پردازش خارجی http://example.com/test#toohigh و رشته "Error: Price is too high" بازمیگردد. |
fn:trace(value,label) | برای debug کردن جستجو استفاده میشود. |
توابع مربوط به数值ها
نام | توضیحات |
---|---|
fn:number(arg) |
بازگشت مقدار عددی پارامتر. پارامتر میتواند مقدار بولین، رشته یا مجموعهای از نودها باشد. مثال: number('100') نتیجه: 100 |
fn:abs(num) |
بازگشت مقدار عددی پارامتر. مثال: abs(3.14) نتیجه: 3.14 مثال: abs(-3.14) نتیجه: 3.14 |
fn:ceiling(num) |
بازگشت بزرگترین عدد صحیح که بزرگتر از پارامتر num است. مثال: ceiling(3.14) نتیجه: 4 |
fn:floor(num) |
بزرگترین عدد صحیح که کمتر یا برابر با پارامتر num است، برمیگرداند. مثال: FLOOR(3.14) نتیجه: 3 |
fn:ROUND(NUM) |
پارامتر num را به عدد نزدیکترین به آن روندها میکند. مثال: ROUND(3.14) نتیجه: 3 |
fn:ROUND-HALF-TO-EVEN() |
مثال: ROUND-HALF-TO-EVEN(0.5) نتیجه: 0 مثال: ROUND-HALF-TO-EVEN(1.5) نتیجه: 2 مثال: ROUND-HALF-TO-EVEN(2.5) نتیجه: 2 |
توابع رشتهها
نام | توضیحات |
---|---|
fn:STRING(ARG) |
مقدار رشتهای پارامتر را برمیگرداند. پارامتر میتواند عدد، ارزش منطقی یا مجموعهای از گرهها باشد. مثال: STRING(314) نتایج: "314" |
fn:CODEPOINTS-TO-STRING(INT,INT,...) |
یک رشته بر اساس توالی کد نویسی برمیگرداند. مثال: CODEPOINTS-TO-STRING(84, 104, 233, 114, 232, 115, 101) نتایج: 'Thérèse' |
fn:STRING-TO-CODEPOINTS(STRING) |
یک توالی کد نویسی بر اساس رشته برمیگرداند. مثال: STRING-TO-CODEPOINTS("Thérèse") نتایج: 84, 104, 233, 114, 232, 115, 101 |
fn:CODEPOINT-EQUAL(comp1,comp2) | بر اساس مقایسه کد نویسی Unicode، اگر مقادیر comp1 و comp2 برابر باشند، true برمیگرداند. (http://www.w3.org/2005/02/xpath-functions/collation/codepoint)، در غیر این صورت false برمیگرداند. |
|
اگر comp1 کمتر از comp2 باشد، -1 برمیگرداند. اگر comp1 برابر با comp2 باشد، 0 برمیگرداند. اگر comp1 بیشتر از comp2 باشد، 1 برمیگرداند. (بسته به مقایسهای که استفاده میشود). مثال: COMPARE('ghi', 'ghi') نتیجه: 0 |
fn:CONCAT(STRING,STRING,...) |
جمعبندی رشتهها را برمیگرداند. مثال: CONCAT('XPath ','است ','سرگرمکننده!') نتایج: 'XPath است سرگرمکننده!} |
fn:JOIN((STRING,STRING,...),SEP) |
از پارامتر sep به عنوان جداکننده برای بازگرداندن رشتهای که از پارامتر string پیوسته شده استفاده میکند. مثال: string-join(('We', 'are', 'having', 'fun!'), ' ') نتایج: ' We are having fun! ' مثال: string-join(('We', 'are', 'having', 'fun!')) نتایج: 'Wearehavingfun!' مثال: string-join((), 'sep') نتایج: '' |
|
رشتهای با طول مشخص شده از موقعیت start آغاز میکند را بازمیگرداند. اولین کاراکتر دارای شماره 1 است. اگر پارامتر len را مشخص نکنید، رشتهای از موقعیت start تا انتهای رشته را بازمیگرداند. مثال: substring('Beatles',1,4) نتایج: 'Beat' مثال: substring('Beatles',2) نتایج: 'eatles' |
|
طول رشته مشخص شده را بازمیگرداند. اگر پارامتر string وجود نداشته باشد، طول رشته ارزش فعلی گره را بازمیگرداند. مثال: string-length('Beatles') نتایج: 7 |
|
حذف فضاهای خالی در ابتدا و انتهای رشته مشخص شده و همه توالیهای فضاهای داخلی را به یک فضا تبدیل میکند و سپس نتایج را بازمیگرداند. اگر پارامتر string وجود نداشته باشد، فضای فعلی گره را پردازش میکند. مثال: normalize-space(' The XML ') نتایج: 'The XML' |
fn:normalize-unicode() | Unicode را استاندارد میکند. |
fn:upper-case(string) |
string پارامتر را به حروف بزرگ تبدیل میکند. مثال: upper-case('The XML') نتایج: 'THE XML' |
fn:lower-case(string) |
string پارامتر را به حروف کوچک تبدیل میکند. مثال: lower-case('The XML') نتایج: 'the xml' |
fn:translate(string1,string2,string3) |
string2 را در string1 جایگزین string3 کنید. مثال: translate('12:30','30','45') نتیجه: '12:45' مثال: translate('12:30','03','54') نتیجه: '12:45' مثال: translate('12:30','0123','abcd') نتیجه: 'bc:da' |
fn:escape-uri(stringURI,esc-res) |
مثال: escape-uri("http://example.com/test#car", true()) نتیجه: "http%3A%2F%2Fexample.com%2Ftest#car" مثال: escape-uri("http://example.com/test#car", false()) نتیجه: "http://example.com/test#car" مثال: escape-uri ("http://example.com/~bébé", false()) نتیجه: "http://example.com/~b%C3%A9b%C3%A9" |
fn:contains(string1,string2) |
اگر string1 شامل string2 است، true بازگردانده میشود، در غیر این صورت false. مثال: contains('XML','XM') نتیجه: true |
fn:starts-with(string1,string2) |
اگر string1 با string2 آغاز میشود، true بازگردانده میشود، در غیر این صورت false. مثال: starts-with('XML','X') نتیجه: true |
fn:ends-with(string1,string2) |
اگر string1 با string2 پایان مییابد، true بازگردانده میشود، در غیر این صورت false. مثال: ends-with('XML','X') نتیجه: false |
fn:substring-before(string1,string2) |
بازگرداندن زیرشاخهای که string2 در string1 ظاهر میشود. مثال: substring-before('12/10','/') نتیجه: '12' |
fn:substring-after(string1,string2) |
بازگرداندن زیرشاخهای که string2 در string1 ظاهر میشود. مثال: substring-after('12/10','/') نتیجه: '10' |
fn:matches(string,pattern) |
اگر پارامتر string با پارامتر مشخص شدهی pattern مطابقت داشته باشد، true را بازمیگرداند، در غیر این صورت false را بازمیگرداند. مثال: matches("Merano", "ran") نتیجه: true |
fn:replace(string,pattern,replace) |
مقدار مشخص شده را با استفاده از پارامتر replace جایگزین کرده و نتیجه را بازمیگرداند. مثال: replace("Bella Italia", "l", "*") نتیجه: 'Be**a Ita*ia' مثال: replace("Bella Italia", "l", "") نتیجه: 'Bea Itaia' |
fn:tokenize(string,pattern) |
مثال: tokenize("XPath is fun", "\s+") نتیجه: ("XPath", "is", "fun") |
توابع مربوط به anyURI.
نام | توضیحات |
---|---|
fn:resolve-uri(relative,base) |
توابع مربوط به مقدار بولن.
نام | توضیحات |
---|---|
fn:boolean(arg) | بازگشت مقدار بولن مربوط به عدد، رشته یا مجموعهی گرهها. |
fn:not(arg) |
ابتدا با استفاده از توابع boolean() پارامتر را به یک مقدار بولن تبدیل میکند. اگر مقدار بولن false باشد، true را بازمیگرداند، در غیر این صورت true را بازمیگرداند. مثال: not(true()) نتیجه: false |
fn:true() |
بازگشت مقدار بولن true. مثال: true() نتیجه: true |
fn:false() |
بازگشت مقدار بولن false. مثال: false() نتیجه: false |
توابع مربوط به زمانپایدار، تاریخ و زمان.
توابع استخراج اجزا تاریخ، زمان و زمانپایدار.
نام | توضیحات |
---|---|
fn:dateTime(date,time) | تبدیل پارامتر به تاریخ و زمان. |
fn:years-from-duration(datetimedur) | بازگشت تعداد سالهای پارامتر به صورت عددی با استفاده از روش واژگان استاندارد. |
fn:months-from-duration(datetimedur) | بازگشت تعداد ماههای پارامتر به صورت عددی با استفاده از روش واژگان استاندارد. |
fn:days-from-duration(datetimedur) | بازگشت تعداد روزهای پارامتر به صورت عددی با استفاده از روش واژگان استاندارد. |
fn:hours-from-duration(datetimedur) | عدد صحیح ساعتهای پارامتر را برمیگرداند، به صورت واژگان استاندارد. |
fn:minutes-from-duration(datetimedur) | عدد صحیح دقیقههای پارامتر را برمیگرداند، به صورت واژگان استاندارد. |
fn:seconds-from-duration(datetimedur) | عدد اعشاری دقیقههای پارامتر را برمیگرداند، به صورت واژگان استاندارد. |
fn:year-from-dateTime(datetime) |
عدد صحیح سالهای محلی پارامتر را برمیگرداند. مثال: year-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) نتیجه: 2005 |
fn:month-from-dateTime(datetime) |
عدد صحیح ماههای محلی پارامتر را برمیگرداند. مثال: month-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) نتیجه: 01 |
fn:day-from-dateTime(datetime) |
عدد صحیح روزهای محلی پارامتر را برمیگرداند. مثال: day-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) نتیجه: 10 |
fn:hours-from-dateTime(datetime) |
عدد صحیح ساعتهای محلی پارامتر را برمیگرداند. مثال: hours-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) نتیجه: 12 |
fn:minutes-from-dateTime(datetime) |
عدد صحیح دقیقههای محلی پارامتر را برمیگرداند. مثال: minutes-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) نتیجه: 30 |
fn:seconds-from-dateTime(datetime) |
عدد اعشاری ثانیههای محلی پارامتر را برمیگرداند. مثال: seconds-from-dateTime(xs:dateTime("2005-01-10T12:30:00-04:10")) نتیجه: 0 |
fn:timezone-from-dateTime(datetime) | بخش منطقه زمانی پارامتر را برمیگرداند، اگر وجود دارد. |
fn:year-from-date(date) |
عدد صحیح سال را در مقادیر محلی پارامتر برمیگرداند. مثال: year-from-date(xs:date("2005-04-23")) نتیجه: 2005 |
fn:month-from-date(date) |
بخش عددی پارامتر را که نشاندهنده بخش ماه است، برمیگرداند. مثال: month-from-date(xs:date("2005-04-23")) نتیجه: 4 |
fn:day-from-date(date) |
بخش عددی پارامتر را که نشاندهنده بخش روز است، برمیگرداند. مثال: day-from-date(xs:date("2005-04-23")) نتیجه: 23 |
fn:timezone-from-date(date) | بخش منطقه زمانی پارامتر را برمیگرداند، اگر وجود دارد. |
fn:hours-from-time(time) |
بخش عددی پارامتر را که نشاندهنده بخش ساعت است، برمیگرداند. مثال: hours-from-time(xs:time("10:22:00")) نتیجه: 10 |
fn:minutes-from-time(time) |
بخش عددی پارامتر را که نشاندهنده بخش دقیقه است، برمیگرداند. مثال: minutes-from-time(xs:time("10:22:00")) نتیجه: 22 |
fn:seconds-from-time(time) |
بخش عددی پارامتر را که نشاندهنده بخش ثانیه است، برمیگرداند. مثال: seconds-from-time(xs:time("10:22:00")) نتیجه: 0 |
fn:timezone-from-time(time) | بخش منطقه زمانی پارامتر را برمیگرداند، اگر وجود دارد. |
fn:adjust-dateTime-to-timezone(datetime,timezone) | اگر پارامتر timezone خالی باشد، dateTime بدون منطقه زمانی را برمیگرداند. در غیر این صورت dateTime با منطقه زمانی را برمیگرداند. |
fn:adjust-date-to-timezone(date,timezone) | اگر پارامتر timezone خالی باشد، تاریخ بدون منطقه زمانی را برمیگرداند. در غیر این صورت تاریخ با منطقه زمانی را برمیگرداند. |
fn:adjust-time-to-timezone(time,timezone) | اگر پارامتر timezone خالی باشد، زمان بدون منطقه زمانی را برمیگرداند. در غیر این صورت زمان با منطقه زمانی را برمیگرداند. |
فونکشنهای مرتبط با QNames
نام | توضیحات |
---|---|
fn:QName() | |
fn:local-name-from-QName() | |
fn:namespace-uri-from-QName() | |
fn:namespace-uri-for-prefix() | |
fn:in-scope-prefixes() | |
fn:resolve-QName() |
توابع مربوط به نقاط
نام | توضیحات |
---|---|
|
نام نقطهای که به وسیلهی nodeset معین شده است را برمیگرداند. |
|
نام نقطهای که به وسیلهی nodeset معین شده است را برمیگرداند - بدون پیشوند فضای نامگذاری. |
|
URI فضای نامگذاری اولین نقطهای که به وسیلهی nodeset معین شده است را برمیگرداند. |
fn:lang(lang) |
اگر زبان فعلی نقطهی فعلی با زبان مشخص شده تطابق داشته باشد، true برمیگرداند. مثال: Lang("en") برای <p xml:lang="en">...</p> مثال: Lang("de") برای <p xml:lang="en">...</p> |
|
ریشه درخت توالیای که به وسیلهی node معین شده است را برمیگرداند. معمولاً این یک نقطهی مستند است. |
توابع مربوط به توالیها
توابع عمومی
نام | توضیحات |
---|---|
fn:index-of((item,item,...),searchitem) |
مقدار position را در توالی پروژهای که با searchitem برابر است، برمیگرداند. مثال: index-of ((15, 40, 25, 40, 10), 40) نتیجه: (2, 4) مثال: index-of (("a", "dog", "and", "a", "duck"), "a") نتیجه: (1, 4) مثال: index-of ((15, 40, 25, 40, 10), 18) نتیجه: () |
fn:remove((item,item,...),position) |
یک توالی جدید از طریق پارامتر item بازسازی میشود - در حالی که پروژهای که در position مشخص شده است حذف میشود. مثال: remove(("ab", "cd", "ef"), 0) نتیجه: ("ab", "cd", "ef") مثال: remove(("ab", "cd", "ef"), 1) نتیجه: ("cd", "ef") مثال: remove(("ab", "cd", "ef"), 4) نتیجه: ("ab", "cd", "ef") |
fn:empty(item,item,...) |
اگر مقدار پارامتر یک توالی خالی باشد، true برمیگرداند، در غیر این صورت false. مثال: empty(remove(("ab", "cd"), 1)) نتیجه: false |
fn:exists(item,item,...) |
اگر مقدار پارامتر خالی نباشد، مقدار true بازمیگردانده میشود، در غیر این صورت مقدار false بازمیگردانده میشود. مثال: exists(remove(("ab"), 1)) نتیجه: false |
fn:distinct-values((item,item,...),collation) |
ارزشهای متفاوت را بازمیگرداند. مثال: distinct-values((1, 2, 3, 1, 2)) نتیجه: (1, 2, 3) |
fn:insert-before((item,item,...),pos,inserts) |
توالی جدیدی که توسط پارامتر item ایجاد شده را بازمیگرداند - در موقعیت مشخص شده توسط پارامتر pos مقدار inserts را وارد میکند. مثال: insert-before(("ab", "cd"), 0, "gh") نتیجه: ("gh", "ab", "cd") مثال: insert-before(("ab", "cd"), 1, "gh") نتیجه: ("gh", "ab", "cd") مثال: insert-before(("ab", "cd"), 2, "gh") نتیجه: ("ab", "gh", "cd") مثال: insert-before(("ab", "cd"), 5, "gh") نتیجه: ("ab", "cd", "gh") |
fn:reverse((item,item,...)) |
ترتیب معکوس پروژههای مشخص شده را بازمیگرداند. مثال: reverse(("ab", "cd", "ef")) نتیجه: ("ef", "cd", "ab") مثال: reverse(("ab")) نتیجه: ("ab") |
fn:subsequence((item,item,...),start,len) |
پروژههای توالیای که توسط پارامتر start مشخص شده را بازمیگرداند، طول توالی توسط پارامتر len مشخص میشود. موقعیت اولین پروژه 1 است. مثال: subsequence(($item1, $item2, $item3,...), 3) نتیجه: ($item3, ...) مثال: subsequence(($item1, $item2, $item3, ...), 2, 2) نتیجه: ($item2, $item3) |
fn:unordered((item,item,...)) | بر اساس ترتیب اجرایی تعیین شده پروژهها را بازمیگرداند. |
توابع تستی گنجایش توالیها
نام | توضیحات |
---|---|
fn:zero-or-one(item,item,...) | اگر پارامتر شامل هیچ پروژهای یا یک پروژه است، پس پارامتر را برمیگرداند، در غیر این صورت خطایی تولید میکند |
fn:one-or-more(item,item,...) | اگر پارامتر شامل یک یا چند پروژه است، پس پارامتر را برمیگرداند، در غیر این صورت خطایی تولید میکند |
fn:exactly-one(item,item,...) | اگر پارامتر شامل یک پروژه است، پس پارامتر را برمیگرداند، در غیر این صورت خطایی تولید میکند |
برابر، اتحاد، تقاطع و استثنا
نام | توضیحات |
---|---|
fn:deep-equal(param1,param2,collation) | اگر param1 و param2 با یکدیگر برابر هستند (deep-equal)، پس true را برمیگرداند، در غیر این صورت false را برمیگرداند |
توابع جمعبندی
نام | توضیحات |
---|---|
fn:count((item,item,...)) | برگردان تعداد گرهها |
fn:avg((arg,arg,...)) |
برگردان میانگین مقادیر پارامترها مثال: avg((1,2,3)) نتیجه: 2 |
fn:max((arg,arg,...)) |
برگردان پارامتری که بیشتر از سایر پارامترهاست مثال: max((1,2,3)) نتیجه: 3 مثال: max(('a', 'k')) نتیجه: 'k' |
fn:min((arg,arg,...)) |
برگردان پارامتری که کمتر از سایر پارامترهاست مثال: min((1,2,3)) نتیجه: 1 مثال: min(('a', 'k')) نتیجه: 'a' |
fn:sum(arg,arg,...) | 总和指定节点集中每个节点的数值 |
توابع تولید توالی
نام | توضیحات |
---|---|
fn:id((string,string,...),node) | برگردان یک توالی از گرههای عنصر که دارای مقادیر ID برابر با مقادیر یکی از مقادیر مشخص شده در متنی است که به عنوان آرگومان وارد شده است |
fn:idref((string,string,...),node) | برگردان یک توالی از گرههای عنصر یا ویژگی که دارای مقادیر IDREF برابر با مقادیر یکی از مقادیر مشخص شده در متنی است که به عنوان آرگومان وارد شده است |
fn:doc(URI) | |
fn:doc-available(URI) | اگر توابع doc() نود مستند را بازگرداند، در غیر این صورت false را بازگرداند. |
|
توابع محیط
نام | توضیحات |
---|---|
fn:position() |
موقعیت index فعلی نود در حال پردازش را بازگرداند. مثال: //book[position()<=3] نتیجه: انتخاب سه عنصر اول book |
fn:last() |
تعداد عناصر در لیست در حال پردازش را بازگرداند. مثال: //book[last()] نتیجه: انتخاب آخرین عنصر book |
fn:current-dateTime() | زمان و تاریخ فعلی (با منطقه زمانی) را بازگرداند. |
fn:current-date() | تاریخ فعلی (با منطقه زمانی) را بازگرداند. |
fn:current-time() | زمان فعلی (با منطقه زمانی) را بازگرداند. |
fn:implicit-timezone() | ارزش منطقه زمانی پنهان را بازگرداند. |
fn:default-collation() | ارزش پیشفرض هماهنگی را بازگرداند. |
fn:static-base-uri() | ارزش base-uri را بازگرداند. |
- صفحه قبل خلاصه XPath
- صفحه بعدی آموزش XPath