توابع XSLT، XPath و XQuery
- پچھلے پنچ XSLT عناصر
- آئندہ پنچ آموزش XML
XSLT 2.0、XPath 2.0 和 XQuery 1.0 共享相同的函数库。
函数参考手册
函数命名空间的默认前缀是:fn:
函数命名空间的 URI 为:http://www.w3.org/2005/xpath-functions
نکات:عموماً استعمال کیا جاتا ہے fn:
پیش کس میں فانکشن بلند کرتے وقت پریفکس استعمال کیا جاتا ہے، مثلاً fn:string()
بھی، لیکن fn:
اس کا نام فن نیم نام ہے، لہذا فانکشن کا نام بلند کرتے وقت نیم نام لگائی نہیں جاتی ہے۔
دستور نویسی فانکشن
نام | توضیح |
---|---|
fn:node-name(node) | پارامتر نیود کا نیود نام جاری کرنا جاتا ہے۔ |
fn:nilled(node) | پارامتر نیود کو رد کرنا یا نہیں رد کرنا کا بولین جاری کرنا جاتا ہے۔ |
fn:data(item.item,...) | آئٹم سیریز کو قبول کرنا اور اٹام اعداد سیریز واپس فراہم کرنا جاتا ہے۔ |
|
موجود نیود یا مخصوص نیود کا base-uri اپریشن کا جاری کرنا جاتا ہے اور اس کا اعداد جاری کرنا جاتا ہے۔ |
fn:document-uri(node) | مخصوص نیود کا document-uri اپریشن کا جاری کرنا جاتا ہے اور اس کا اعداد جاری کرنا جاتا ہے۔ |
کھلاڑی اور trace فانکشن
نام | توضیح |
---|---|
|
مثال: 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 ','is ','FUN!') نتایج: 'XPath is FUN!' |
fn:string-join((string,string,...),sep) |
از پارامتر sep به عنوان جداکننده استفاده میکند تا رشتههای پیچیده شده را به رشتهی یکپارچه تبدیل کند. مثال: string-join(('We', 'are', 'having', 'fun!'), ' ') نتایج: ' We are having fun! ' مثال: string-join(('We', 'are', 'having', 'fun!')) نتایج: 'Wearehavingfun!' مثال: string-join((), 'sep') نتایج: '' |
|
رشتهای مشخص شده از شروع به طول مشخص شده را برمیگرداند. اولین کاراکتر از شماره 1 شروع میشود. اگر طول را حذف کنید، رشتهای از شروع تا انتهای رشته را برمیگرداند. مثال: substring('Beatles',1,4) نتایج: 'Beat' مثال: substring('Beatles',2) نتایج: 'eatles' |
|
طول رشته مشخص شده را برمیگرداند. اگر هیچ رشتهای وجود نداشته باشد، طول رشتهی ارزش فعلی رشته را برمیگرداند. مثال: string-length('Beatles') نتایج: 7 |
|
حذف فضاهای خالی در ابتدای و انتهای رشته مشخص شده و تمام توالیهای فضاهای خالی درونی را به یک عدد تبدیل میکند و سپس نتایج را برمیگرداند. اگر هیچ رشتهای وجود نداشته باشد، به جای رشته فعلی استفاده میشود. مثال: 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) |
string1 را با string2 جایگزین 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) |
اگر سطر1 شامل سطر2 است، در غیر این صورت false بازگردانده میشود. مثال: contains('XML','XM') نتیجہ: true |
fn:starts-with(string1,string2) |
اگر سطر1 با سطر2 آغاز میشود، در غیر این صورت false بازگردانده میشود. مثال: starts-with('XML','X') نتیجہ: true |
fn:ends-with(string1,string2) |
اگر سطر1 با سطر2 پایان مییابد، در غیر این صورت false بازگردانده میشود. مثال: ends-with('XML','X') نتیجہ: false |
fn:substring-before(string1,string2) |
مقابل سطر2، زیر شطرangi سطر1 قبل از ظهور سطر2 بازگردانده میشود. مثال: substring-before('12/10','/') نتیجہ: '12' |
fn:substring-after(string1,string2) |
string2 میں string1 کا آنا کے بعد کا سترنگ بر آمد کرنا مثال: substring-after('12/10','/') نتیجہ: '10' |
fn:matches(string,pattern) |
اگر string پارامٹر مخصوص مدد سے تال میل کرتا ہو تو ترو بر آمد کرنا، درغیر این فالس بر آمد کرنا مثال: matches("Merano", "ran") نتیجہ: true |
fn:replace(string,pattern,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() فانکشن کے ذریعے پارامٹر کو بولین وارئبل برو آمد کرنا اگر بولین وارئبل فالس ہو تو ترو بر آمد کرنا، درغیر این فالس بر آمد کرنا مثال: not(true()) نتیجہ: false |
fn:true() |
بولین وارئبل ترو برو آمد کرنا مثال: true() نتیجہ: true |
fn: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) | بخش timezone پارامتر را برمیگرداند، اگر وجود داشته باشد。 |
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) | بخش timezone پارامتر را برمیگرداند، اگر وجود داشته باشد。 |
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) | بخش timezone پارامتر را برمیگرداند، اگر وجود داشته باشد。 |
fn:adjust-dateTime-to-timezone(datetime,timezone) |
اگر پارامتر timezone خالی باشد، dateTime بدون timezone را برمیگرداند。 در غیر این صورت، dateTime با timezone را برمیگرداند。 |
fn:adjust-date-to-timezone(date,timezone) |
اگر پارامتر timezone خالی باشد، date بدون timezone را برمیگرداند。 در غیر این صورت، date با timezone را برمیگرداند。 |
fn:adjust-time-to-timezone(time,timezone) |
اگر پارامتر timezone خالی باشد، time بدون 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() |
توابع مربوط به گرهها
نام | توضیح |
---|---|
|
بازگشت به نام گره فعلی یا اولین گره در مجموعه گرهها. |
|
بازگشت به نام گره فعلی یا اولین گره در مجموعه گرهها - بدون پیشوند فضای نام. |
|
بازگشت به URI فضای نام مربوط به گره فعلی یا مجموعه گرههای مشخص شده. |
fn:lang(lang) |
اگر زبان گره فعلی با زبان مشخص شده مطابقت دارد، true بازمیگرداند. مثال: Lang("en") is true for <p xml:lang="en">...</p> مثال: Lang("de") is false for <p xml:lang="en">...</p> |
|
بازگشت به ریشه درخت گرههای مربوط به گره فعلی یا گره مشخص شده. معمولاً گره مستند است. |
توابع مربوط به ترتیبها
توابع عمومی
نام | توضیح |
---|---|
fn:index-of((item,item,...),searchitem) |
بازگشت به موقعیتی که در ترتیب پروژهها با پارامتر 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,...) | اگر پارامتر شامل یک مورد باشد، پس پارامتر را برمیگرداند، در غیر این صورت خطا تولید میکند. |
Equals, Union, Intersection and Except
نام | توضیح |
---|---|
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 آنها برابر با یکی از مقادیر مشخص شده در پارامتر string است. |
fn:idref((string,string,...),node) | مقابل یا صفت نودهایی را برمیگرداند که مقادیر IDREF آنها برابر با یکی از مقادیر مشخص شده در پارامتر string است. |
fn:doc(URI) | |
fn:doc-available(URI) | اگر doc() فنکشن دستاویز نیٹ کو واپسی کرتا ہے تو true واپسی کیا جاتا ہے، درغیر اینت فالس واپسی کیا جاتا ہے |
|
مقامی فنکشن
نام | توضیح |
---|---|
fn:position() |
موجود نیٹ کا index مقام واپسی کرنا مثال: //book[position()<=3] نتیجہ: پہلے تین book عناصر کو انتخاب کیا جاتا ہے |
fn:last() |
مخصوص نیٹ کی فہرست میں آئی پروجیکٹوں کی تعداد کو واپسی کرنا مثال: //book[last()] نتیجہ: آخری book عنصر کو انتخاب کیا جاتا ہے |
fn:current-dateTime() | dateTime (مقابلہ وقت) کی قیمتی واپسی کرنا |
fn:current-date() | تاریخ (مقابلہ وقت) کی قیمتی واپسی کرنا |
fn:current-time() | وقت (مقابلہ وقت) کی قیمتی واپسی کرنا |
fn:implicit-timezone() | خفیہ وقت کی قیمتی واپسی کرنا |
fn:default-collation() | مقابلہ کی ملازمت کی قیمتی واپسی کرنا |
fn:static-base-uri() | base-uri کی قیمتی واپسی کرنا |
XSLT فنکشن
اس کے علاوہ، درج ذیل داخلی XSLT فنکشن موجود ہیں:
نام | وصف |
---|---|
current() | موجود نیٹ کو واحد ممبر نیٹ کا نیٹ واپسی کرنا |
document() | بیرونی XML دستاویز میں نیٹوں تک رسائی حاصل کرنے کے لئے استعمال کیا جاتا ہے |
element-available() | XSLT پروسیسر کا پتہ لگانا کہ وہ مخصوص عنصر کو استعمال کرسکتا ہے یا نہیں |
format-number() | اعداد و شمار کو اعداد و شمار کی شکل میں تبدیل کرنا |
function-available() | XSLT پروسیسر کا پتہ لگانا کہ وہ مخصوص فنکشن کو استعمال کرسکتا ہے یا نہیں |
generate-id() | مخصوص نیٹ کی منفرد شناخت کرنے والی اعداد و شمار کی واپسی کرنا |
key() | پہلے <xsl:key> دستوری کے ذریعہ نشان دہ کردہ عناصر کو حاصل کرنا |
node-set | درخت کو نیٹ کا تبدیل کرنا۔ پیدا ہونے والا نیٹ ہمیشہ ایک نیٹ شامل کرتا ہے اور یہ درخت کا رُوپ کا نیٹ ہوتا ہے۔ |
system-property() | سیستم کی خاصیت کی قیمتی واپسی کرنا |
unparsed-entity-uri() | بازگشت ناپارسی شدہ ایجنسی کی URI |
- پچھلے پنچ XSLT عناصر
- آئندہ پنچ آموزش XML