وظائف 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) | لتحليل البحث. |
وظائف العدد
الاسم | شرح |
---|---|
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. |
|
إذا كان 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') النتيجة: '' |
|
العودة إلى السلسلة الفرعية المحددة من موقع 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) |
استبدل نص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() |
الوظائف المتعلقة بالنقاط
الاسم | شرح |
---|---|
|
يعود الاسم للنقطة الحالية أو النقطة الأولى في مجموعة النقاط. |
|
يعود الاسم للنقطة الحالية أو النقطة الأولى في مجموعة النقاط - بدون مقدم. |
|
يعود URI المكانة للنقطة الحالية أو مجموعة النقاط المحددة. |
fn:lang(lang) |
إذا كان لغة النقطة الحالية تتطابق مع اللغة المحددة، فإنه يعود صحيح. مثال: 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,...) |
إذا كان قيمة المعامل فارغة، فإنه يعود صحيح، وإلا يعود خطأ. مثال: 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: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. |
- الصفحة السابقة مقدمة XPath
- الصفحة التالية دليل XPath