وظائف XPath، XQuery، و XSLT

وظائف الوصول

الاسم شرح
fn:node-name(node) يعود اسم العقد للعقد المحدد.
fn:nilled(node) يعود القيمة الحالةية التي تم رفضها للعقد المحدد.
fn:data(item.item,...) تقبل سلسلة العناصر وتعود سلسلة القيم الذرية.
  • fn:base-uri()
  • fn:base-uri(node)
يعود قيمة خاصية base-uri للعقد الحالي أو العقد المحدد.
fn:document-uri(node) يعود قيمة خاصية document-uri للعقد المحدد.

وظائف الأخطاء والتعقب

الاسم شرح
  • fn:error()
  • fn:error(error)
  • fn:error(error,description)
  • fn:error(error,description,error-object)

مثال: 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-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.
  • fn:compare(comp1,comp2)
  • fn:compare(comp1,comp2,collation)

إذا كان comp1 أصغر من comp2،يعود ب -1. إذا كان comp1 يساوي comp2،يعود ب 0. إذا كان comp1 أكبر من comp2،يعود ب 1. (حسب القاعدة المتبعة للمراجعة).

مثال: compare('ghi', 'ghi')

النتيجة: 0

fn:concatenate(النص,النص,...)

يعود بجمع النصوص.

مثال: concatenate('XPath ','هو ','المرح!')

النتيجة: 'XPath هو المرح!'

fn:إجتماع-الإتصالات((النص,النص,...),sep)

استخدام المعرفة sep كحرف تقسيم، لتحقيق سلسلة مدمجة من معرفة string.]}

مثال: string-join(('We', 'are', 'having', 'fun!'), ' ')

النتيجة: ' We are having fun! '

مثال: string-join(('We', 'are', 'having', 'fun!'))

النتيجة: 'Wearehavingfun!'

مثال: string-join((), 'sep')

النتيجة: ''

  • fn:substring(string,start,len)
  • fn:substring(string,start)

العودة إلى السلسلة الفرعية المحددة من موقع start. الموقع الأول هو 1. إذا تم تجاهل المعرفة len، يتم العودة إلى السلسلة الفرعية من موقع start إلى نهاية السلسلة.

مثال: substring('Beatles',1,4)

النتيجة: 'Beat'

مثال: substring('Beatles',2)

النتيجة: 'eatles'

  • fn:string-length(string)
  • fn:string-length()

العودة إلى طول السلسلة المحددة. إذا لم يكن هناك معرفة string، يتم العودة إلى طول قيمة السلسلة الحالية للعنصر.

مثال: string-length('Beatles')

النتيجة: 7

  • fn:normalize-space(string)
  • fn:normalize-space()

حذف الفواصل التي توجد في بداية و نهاية السلسلة المحددة، و تبديل جميع السلاسل الفارغة بينها بفاصلة واحدة، ثم العودة إلى النتيجة. إذا لم يكن هناك معرفة 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)

استبدل نص2 في نص1 بالنص3.

مثال: 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، فإنه يعود true، وإلا يعود false.

مثال: contains('XML','XM')

النتيجة: true

fn:starts-with(string1,string2)

إذا كان نص1 يبدأ بالنص2، فإنه يعود true، وإلا يعود false.

مثال: starts-with('XML','X')

النتيجة: true

fn:ends-with(string1,string2)

إذا كان نص1 ينتهي بالنص2، فإنه يعود true، وإلا يعود false.

مثال: ends-with('XML','X')

النتيجة: false

fn:substring-before(string1,string2)

يعود النص الموجود قبل ظهور نص2 في نص1.

مثال: substring-before('12/10','/')

النتيجة: '12'

fn:substring-after(string1,string2)

يعود النص الموجود بعد ظهور نص2 في نص1.

مثال: substring-after('12/10','/')

النتيجة: '10'

fn:matches(string,pattern)

إذا كانت قيمة النص متطابقة مع النمط المحدد، يُرجع صحيحة، وإلا يُرجع غير صحيحة.

مثال: 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() المعامل إلى قيمة بولية. إذا كانت القيمة البولية غير صحيحة، يُرجع صحيحة، وإلا يُرجع صحيحة.

مثال: 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) يعود بجزء المنطقة الزمنية للمعامل، إذا كان موجودًا.
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 فارغًا، فإنه يعود بـ date بدون منطقة زمنية. وإلا يعود بـ date يحتوي على منطقة زمنية.
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()  

الوظائف المتعلقة بالنقاط

الاسم شرح
  • fn:name()
  • fn:name(nodeset)
يعود الاسم للنقطة الحالية أو النقطة الأولى في مجموعة النقاط.
  • fn:local-name()
  • fn:local-name(nodeset)
يعود الاسم للنقطة الحالية أو النقطة الأولى في مجموعة النقاط - بدون مقدم.
  • fn:namespace-uri()
  • fn:namespace-uri(nodeset)
يعود URI المكانة للنقطة الحالية أو مجموعة النقاط المحددة.
fn:lang(lang)

إذا كان لغة النقطة الحالية تتطابق مع اللغة المحددة، فإنه يعود صحيح.

مثال: Lang("en") هو صحيح لل <p xml:lang="en">...</p>

مثال: Lang("de") هو خطأ لل <p xml:lang="en">...</p>

  • fn:root()
  • fn:root(node)
يعود جذع الشجرة للنقطة الحالية أو النقطة المحددة من الشجرة. عادة ما يكون هذا هو العنصر الوثيقي.

الوظائف المتعلقة بالسلسلة

الوظائف العامة

الاسم شرح
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,...)

إذا كان قيمة المعامل فارغة، فإنه يعود صحيح، وإلا يعود خطأ.

مثال: 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

مثال: 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 تساوي قيمة واحدة أو أكثر من القيم المحددة في السطر المقدم كإ argument
fn:idref((string,string,...),node) يعود سلسلة من عناصر أو عناصر الخاصية التي تحتوي على قيمة IDREF تساوي قيمة واحدة أو أكثر من القيم المحددة في السطر المقدم كإ argument
fn:doc(URI)  
fn:doc-available(URI) إذا كان يعود doc() إلى عقدة مستند، فإنه يعود إلى true، وإلا يعود إلى false.
  • fn:collection()
  • fn:collection(string)
 

وظائف السياق

الاسم شرح
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.