وظائف 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 للعنصر المحدد. |
وظائف الأخطاء والتحقق
الاسم | الشرح |
---|---|
|
مثال: 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) | لتحقق من الاستعلام. |
الوظائف المتعلقة بالعدد
الاسم | الشرح |
---|---|
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. مثال: string-join(('We', 'are', 'having', 'fun!'), ' ') النتيجة: ' We are having fun! ' مثال: string-join(('We', 'are', 'having', 'fun!')) النتيجة: 'Wearehavingfun!' مثال: string-join((), 'sep') النتيجة: '' |
|
إرجاع سلسلة من النص المحددة من موقع start. يتم حساب الموقع الأول كـ 1. إذا تم تمرير معرفة len، يتم إرجاع السلسلة من موقع start إلى نهاية النص. إذا لم يتم تمرير معرفة 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) |
تحويل نص parameter إلى صغير. مثال: 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 تطابق النمط المحدد، يعيد 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 بدون منطقة زمنية. إذا كان معامل timezone فارغًا، فإنه يعود بـ dateTime يحتوي على منطقة زمنية. |
fn:adjust-date-to-timezone(date,timezone) |
إذا كان معامل timezone فارغًا، فإنه يعود بـ dateTime بدون منطقة زمنية. إذا كان معامل timezone فارغًا، فإنه يعود بـ date يحتوي على منطقة زمنية. |
fn:adjust-time-to-timezone(time,timezone) |
إذا كان معامل timezone فارغًا، فإنه يعود بوقت بدون منطقة زمنية. إلا إذا كان يحتوي على time مع الوقت الزمني. |
دوال 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") هو صحيح لل <p xml:lang="en">...</p> مثال: Lang("de") هو خطأ لل <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، مع إدراج قيمة inserts في موقع pos المحدد. مثال: 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() إلى عقدة مستند، فإنها تعود true، وإلا تعود false. |
|
دوال السياق
الاسم | الشرح |
---|---|
fn:position() |
استعادة موقع العقد الحالي الذي يتم معالجته. المثال: //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