XSLT, XPath ve XQuery Fonksiyonları
- Önceki sayfa XSLT Elementleri
- Sonraki sayfa XML Eğitimi
XSLT 2.0, XPath 2.0 ve XQuery 1.0 aynı fonksiyon kitaplığını paylaşır.
Fonksiyon referans el kitabı
Fonksiyon ad alanının varsayılan ön eki:fn:
Fonksiyon ad alanının URI'si:http://www.w3.org/2005/xpath-functions
İpucu:Genellikle fn:
ön eki kullanarak fonksiyon çağrılır, örneğin fn:string()
Ancak, fn:
Adlandırma alanının varsayılan ön eki olduğundan, fonksiyon adına ön ek eklemek gerekmez.
Erişim fonksiyonları
İsim | Açıklama |
---|---|
fn:node-name(node) | Parametre düğümünün düğüm adını döndürür. |
fn:nilled(node) | Parametre düğümünü reddetip reddetmediğini belirleyen boolean değer döndürür. |
fn:data(item.item,...) | Proje dizisini kabul eder ve atomik değer dizisi döndürür. |
|
Güncel düğüm veya belirtilen düğümün base-uri özelliğinin değerini döndürür. |
fn:document-uri(node) | Belirtilen düğümün document-uri özelliğinin değerini döndürür. |
Hata ve takip fonksiyonları
İsim | Açıklama |
---|---|
|
Örnek: error(fn:QName('http://example.com/test', 'err:toohigh'), 'Error: Price is too high') Sonuç: Dış işleme ortamına http://example.com/test#toohigh ve "Error: Price is too high" string'ini döndürür. |
fn:trace(value,label) | Sorguyu debug etmek için kullanılır. |
Sayısal fonksiyonlar hakkında
İsim | Açıklama |
---|---|
fn:number(arg) |
Dönüş parametre değerleri. Parametre, boolean değer, string veya düğüm kümesi olabilir. Örnek: number('100') Sonuç: 100 |
fn:abs(num) |
Parametrenin mutlak değerini döndürür. Örnek: abs(3.14) Sonuç: 3.14 Örnek: abs(-3.14) Sonuç: 3.14 |
fn:ceiling(num) |
num parametresinin en küçük, num'dan büyük olan tam sayısını döndürür. Örnek: ceiling(3.14) Sonuç: 4 |
fn:floor(num) |
num parametresinin en büyük, num'dan küçük veya eşit olan tam sayısını döndürür. Örnek: floor(3.14) Sonuç: 3 |
fn:round(num) |
num parametresini en yakın tam sayıya yuvarlar. Örnek: round(3.14) Sonuç: 3 |
fn:round-half-to-even() |
Örnek: round-half-to-even(0.5) Sonuç: 0 Örnek: round-half-to-even(1.5) Sonuç: 2 Örnek: round-half-to-even(2.5) Sonuç: 2 |
Dizge fonksiyonları hakkında
İsim | Açıklama |
---|---|
fn:string(arg) |
Parametrenin dizge değerini döndürür. Parametre sayı, mantıksal değer veya düğüm kümesi olabilir. Örnek: string(314) Sonuç: "314" |
fn:codepoints-to-string(int,int,...) |
Kod noktaları dizisine göre dizge döndürür. Örnek: codepoints-to-string(84, 104, 233, 114, 232, 115, 101) Sonuç: 'Thérèse' |
fn:string-to-codepoints(string) |
Dizgeye göre kod noktaları dizisi döndürür. Örnek: string-to-codepoints("Thérèse") Sonuç: 84, 104, 233, 114, 232, 115, 101 |
fn:codepoint-equal(comp1,comp2) | Unicode kod noktası karşılığına göre, comp1'nin değeri comp2'nin değeriyle eşitse true döndür. (http://www.w3.org/2005/02/xpath-functions/collation/codepoint), aksi takdirde false döndür. |
|
Eğer comp1 comp2'den küçükse -1 döndür. Eğer comp1 comp2'ye eşitse 0 döndür. Eğer comp1 comp2'den büyüksa 1 döndür. (Kullanılan karşılık kurallarına göre). Örnek: compare('ghi', 'ghi') Sonuç: 0 |
fn:concat(string,string,...) |
Dizgileri birleştirir. Örnek: concat('XPath ','is ','FUN!') Sonuç: 'XPath is FUN!' |
fn:string-join((string,string,...),sep) |
sep parametresini kullanarak string parametresinin birleştirilmiş dizgisini döndürür. Örnek: string-join(('We', 'are', 'having', 'fun!'), ' ') Sonuç: ' We are having fun! ' Örnek: string-join(('We', 'are', 'having', 'fun!')) Sonuç: 'Wearehavingfun!' Örnek: string-join((), 'sep') Sonuç: '' |
|
start konumundan başlayan belirtilen uzunlukta alt dizgiyi döndürür. İlk karakterin indeksi 1'dir. len parametresi atlanırsa, start konumundan dizginin sonuna kadar olan alt dizgi döndürülür. Örnek: substring('Beatles',1,4) Sonuç: 'Beat' Örnek: substring('Beatles',2) Sonuç: 'eatles' |
|
Belirtilen dizginin uzunluğunu döndürür. string parametresi yoksa, mevcut düğümün dizgi değerinin uzunluğunu döndürür. Örnek: string-length('Beatles') Sonuç: 7 |
|
Belirtilen dizginin başlangıç ve bitişindeki boşlukları silir, içerdeki tüm boşluk dizgilerini birleştirir ve sonuç olarak döndürür. string parametresi yoksa, mevcut düğümü işler. Örnek: normalize-space(' The XML ') Sonuç: 'The XML' |
fn:normalize-unicode() | Unicode düzenlemesini gerçekleştirir. |
fn:upper-case(string) |
string parametreyi büyük harfe dönüştürür. Örnek: upper-case('The XML') sonuç:'THE XML' |
fn:lower-case(string) |
string parametresini küçük harfe dönüştür. örnek:lower-case('The XML') sonuç:'the xml' |
fn:translate(string1,string2,string3) |
string1 içinde string2'yi string3 ile değiştir. örnek:translate('12:30','30','45') sonuç:'12:45' örnek:translate('12:30','03','54') sonuç:'12:45' örnek:translate('12:30','0123','abcd') sonuç:'bc:da' |
fn:escape-uri(stringURI,esc-res) |
örnek:escape-uri("http://example.com/test#car", true()) sonuç:"http%3A%2F%2Fexample.com%2Ftest#car" örnek:escape-uri("http://example.com/test#car", false()) sonuç:"http://example.com/test#car" örnek:escape-uri ("http://example.com/~bébé", false()) sonuç:"http://example.com/~b%C3%A9b%C3%A9" |
fn:contains(string1,string2) |
string1 string2 içermiyorsa true döndürür, aksi takdirde false döndürür. örnek:contains('XML','XM') Sonuç: true |
fn:starts-with(string1,string2) |
string1 string2 ile başlıyorsa true döndürür, aksi takdirde false döndürür. örnek:starts-with('XML','X') Sonuç: true |
fn:ends-with(string1,string2) |
string1 string2 ile bitiyorsa true döndürür, aksi takdirde false döndürür. örnek:ends-with('XML','X') Sonuç: false |
fn:substring-before(string1,string2) |
string1 içinde string2'nin出现之前的子字符串。döndür. Örnek: substring-before('12/10','/') Sonuç: '12' |
fn:substring-after(string1,string2) |
string2'nin string1 içindeki yerinden sonraki alt diziyi döndürür. Örnek: substring-after('12/10','/') Sonuç: '10' |
fn:matches(string,pattern) |
String parametresi belirtilen modele uyuyorsa true döndürür, aksi takdirde false döndürür. Örnek: matches("Merano", "ran") Sonuç: true |
fn:replace(string,pattern,replace) |
Belirtilen modeli replace parametresi ile değiştirir ve sonuç döndürür. Örnek: replace("Bella Italia", "l", "*") Sonuç: 'Be**a Ita*ia' Örnek: replace("Bella Italia", "l", "") Sonuç: 'Bea Itaia' |
fn:tokenize(string,pattern) |
Örnek: tokenize("XPath is fun", "\s+") Sonuç: ("XPath", "is", "fun") |
anyURI için fonksiyonlar
İsim | Açıklama |
---|---|
fn:resolve-uri(relative,base) |
Boolean değerlerle ilgili fonksiyonlar
İsim | Açıklama |
---|---|
fn:boolean(arg) | Sayı, string veya node kümesinin boolean değerini döndürür. |
fn:not(arg) |
Öncelikle boolean() fonksiyonu ile parametreyi bir boolean değere dönüştürür. Boolean değeri false ise true döndürür, aksi takdirde true döndürür. Örnek: not(true()) Sonuç: false |
fn:true() |
Boolean değerini true döndürür. Örnek: true() Sonuç: true |
fn:false() |
Boolean değerini false döndürür. Örnek: false() Sonuç: false |
Süre, tarih ve zamanla ilgili fonksiyonlar
Tarih, zaman ve süre komponentlerini çıkarır.
İsim | Açıklama |
---|---|
fn:dateTime(date,time) | Parametreyi tarih ve zaman olarak dönüştürür. |
fn:years-from-duration(datetimedur) | Parametrenin yıl kısmının tam sayısını, standart kelime belirtim yöntemi ile ifade eder. |
fn:months-from-duration(datetimedur) | Parametrenin ay kısmının tam sayısını, standart kelime belirtim yöntemi ile ifade eder. |
fn:days-from-duration(datetimedur) | parametrenin değerinin gün kısmının tam sayısı, standart kelime ifadesi ile döndürülür. |
fn:hours-from-duration(datetimedur) | parametrenin değerinin saat kısmının tam sayısı, standart kelime ifadesi ile döndürülür. |
fn:minutes-from-duration(datetimedur) | parametrenin değerinin dakika kısmının tam sayısı, standart kelime ifadesi ile döndürülür. |
fn:seconds-from-duration(datetimedur) | parametrenin değerinin dakika kısmının ondalık sayısı, standart kelime ifadesi ile döndürülür. |
fn:year-from-dateTime(datetime) |
parametrenin yerel değerinin yıl kısmının tam sayısı döndürülür. örnek: year-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Sonuç: 2005 |
fn:month-from-dateTime(datetime) |
parametrenin yerel değerinin ay kısmının tam sayısı döndürülür. örnek: month-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Sonuç: 01 |
fn:day-from-dateTime(datetime) |
parametrenin yerel değerinin gün kısmının tam sayısı döndürülür. örnek: day-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Sonuç: 10 |
fn:hours-from-dateTime(datetime) |
parametrenin yerel değerinin saat kısmının tam sayısı döndürülür. örnek: hours-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Sonuç: 12 |
fn:minutes-from-dateTime(datetime) |
parametrenin yerel değerinin dakika kısmının tam sayısı döndürülür. örnek: minutes-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Sonuç: 30 |
fn:seconds-from-dateTime(datetime) |
parametrenin yerel değerinin saniye kısmının ondalık sayısı döndürülür. örnek: seconds-from-dateTime(xs:dateTime("2005-01-10T12:30:00-04:10")) Sonuç: 0 |
fn:timezone-from-dateTime(datetime) | Varsa parametrenin zaman dilimi kısmını döndürür. |
fn:year-from-date(date) |
Parametrenin yerel değerinde yılı temsil eden tamsayıyı döndürür. Örnek: year-from-date(xs:date("2005-04-23")) Sonuç: 2005 |
fn:month-from-date(date) |
Parametrenin yerel değerinde ayı temsil eden tamsayıyı döndürür. Örnek: month-from-date(xs:date("2005-04-23")) Sonuç: 4 |
fn:day-from-date(date) |
Parametrenin yerel değerinde günü temsil eden tamsayıyı döndürür. Örnek: day-from-date(xs:date("2005-04-23")) Sonuç: 23 |
fn:timezone-from-date(date) | Varsa parametrenin zaman dilimi kısmını döndürür. |
fn:hours-from-time(time) |
Parametrenin yerel değerinde saat kısmını temsil eden tamsayıyı döndürür. Örnek: hours-from-time(xs:time("10:22:00")) Sonuç: 10 |
fn:minutes-from-time(time) |
Parametrenin yerel değerinde dakika kısmını temsil eden tamsayıyı döndürür. Örnek: minutes-from-time(xs:time("10:22:00")) Sonuç: 22 |
fn:seconds-from-time(time) |
Parametrenin yerel değerinde saniye kısmını temsil eden tamsayıyı döndürür. Örnek: seconds-from-time(xs:time("10:22:00")) Sonuç: 0 |
fn:timezone-from-time(time) | Varsa parametrenin zaman dilimi kısmını döndürür. |
fn:adjust-dateTime-to-timezone(datetime,timezone) |
Eğer timezone parametresi boşsa, zaman dilimi olmayan dateTime döndürülür. Aksi takdirde zaman dilimi içeren dateTime döndürülür. |
fn:adjust-date-to-timezone(date,timezone) |
Eğer timezone parametresi boşsa, zaman dilimi olmayan date döndürülür. Aksi takdirde zaman dilimi içeren date döndürülür. |
fn:adjust-time-to-timezone(time,timezone) |
Eğer timezone parametresi boşsa, zaman dilimi olmayan time döndürülür. Aksi takdirde zaman dilimli zaman döndürür. |
QNames ile ilgili fonksiyonlar
İsim | Açıklama |
---|---|
fn:QName() | |
fn:local-name-from-QName() | |
fn:namespace-uri-from-QName() | |
fn:namespace-uri-for-prefix() | |
fn:in-scope-prefixes() | |
fn:resolve-QName() |
Düğüm fonksiyonları
İsim | Açıklama |
---|---|
|
Geçerli düğümün adını veya belirtilen düğüm kümesinin ilk düğümünün adını döndürür. |
|
Geçerli düğümün adını veya belirtilen düğüm kümesinin ilk düğümünün adını ad alanı ile birlikte döndürür. Alan öncesi isimli değil. |
|
Geçerli düğüm veya belirtilen düğüm kümesinin ilk düğümünün ad alan URI'sini döndürür. |
fn:lang(lang) |
Geçerli düğümün dili belirtilen dile eşitse true döndürür. Örnek: Lang("en") için true <p xml:lang="en">...</p> Örnek: Lang("de") için false <p xml:lang="en">...</p> |
|
Geçerli düğüm veya belirtilen düğümün düğüm ağacının kök düğümünü döndürür. Genellikle belge düğümüdür. |
Dizgi fonksiyonları
Genel fonksiyon
İsim | Açıklama |
---|---|
fn:index-of((item,item,...),searchitem) |
Arama öğesi parametresi ile eşit olan konumları döndürür. Örnek: index-of ((15, 40, 25, 40, 10), 40) Sonuç: (2, 4) Örnek: index-of (("a", "dog", "and", "a", "duck"), "a") Sonuç (1, 4) Örnek: index-of ((15, 40, 25, 40, 10), 18) Sonuç: () |
fn:remove((item,item,...),position) |
item parametresi ile yeni bir dizgi oluşturur - position parametresi belirtilen öğeyi siler. Örnek: remove(("ab", "cd", "ef"), 0) Sonuç: ("ab", "cd", "ef") Örnek: remove(("ab", "cd", "ef"), 1) Sonuç: ("cd", "ef") örnek: remove(("ab", "cd", "ef"), 4) Sonuç: ("ab", "cd", "ef") |
fn:empty(item,item,...) |
parametre değeri boş dizisiyse true döndürür, aksi takdirde false döndürür. örnek: empty(remove(("ab", "cd"), 1)) Sonuç: false |
fn:exists(item,item,...) |
parametre değeri boş dizisi değilse true döndürür, aksi takdirde false döndürür. örnek: exists(remove(("ab"), 1)) Sonuç: false |
fn:distinct-values((item,item,...),collation) |
farklı değerleri döndürür. örnek: distinct-values((1, 2, 3, 1, 2)) Sonuç: (1, 2, 3) |
fn:insert-before((item,item,...),pos,inserts) |
item parametresi ile oluşturulan yeni diziyi döndürür - aynı zamanda pos parametresi belirtilen konuma inserts parametresinin değerini ekler. örnek: insert-before(("ab", "cd"), 0, "gh") Sonuç: ("gh", "ab", "cd") örnek: insert-before(("ab", "cd"), 1, "gh") Sonuç: ("gh", "ab", "cd") örnek: insert-before(("ab", "cd"), 2, "gh") Sonuç: ("ab", "gh", "cd") örnek: insert-before(("ab", "cd"), 5, "gh") Sonuç: ("ab", "cd", "gh") |
fn:reverse((item,item,...)) |
belirtilen projenin ters sırasını döndürür. örnek: reverse(("ab", "cd", "ef")) Sonuç: ("ef", "cd", "ab") örnek: reverse(("ab")) Sonuç: ("ab") |
fn:subsequence((item,item,...),start,len) |
start parametresi belirtilen konumdan döndürür, dizinin uzunluğu len parametresi ile belirlenir. ilk projenin konumu 1'dir. örnek: subsequence(($item1, $item2, $item3,...), 3) Sonuç: ($item3, ...) Örnek: subsequence(($item1, $item2, $item3, ...), 2, 2) Sonuç: ($item2, $item3) |
fn:unordered((item,item,...)) | Uygulama tarafından belirlenen sıraya göre öğeleri döndürür. |
Seri kapasitesini test eden fonksiyon
İsim | Açıklama |
---|---|
fn:zero-or-one(item,item,...) | Parametre sıfır veya bir öğe içeriyorsa parametreyi döndürür, aksi takdirde hata oluşturur. |
fn:one-or-more(item,item,...) | Parametre bir veya daha fazla öğe içeriyorsa parametreyi döndürür, aksi takdirde hata oluşturur. |
fn:exactly-one(item,item,...) | Parametre bir öğe içeriyorsa parametreyi döndürür, aksi takdirde hata oluşturur. |
Eşitlik, Birleşim, Çarpım ve Fark
İsim | Açıklama |
---|---|
fn:deep-equal(param1,param2,collation) | param1 ve param2 birbirine eşitse (deep-equal) true döndürür, aksi takdirde false döndürür. |
Toplama fonksiyonu
İsim | Açıklama |
---|---|
fn:count((item,item,...)) | Düğüm sayısını döndürür. |
fn:avg((arg,arg,...)) |
Parametre değerlerinin ortalamasını döndürür. Örnek: avg((1,2,3)) Sonuç: 2 |
fn:max((arg,arg,...)) |
Diğer parametrelerden büyük olan parametreyi döndürür. Örnek: max((1,2,3)) Sonuç: 3 Örnek: max(('a', 'k')) Sonuç: 'k' |
fn:min((arg,arg,...)) |
Diğer parametrelerden küçük olan parametreyi döndürür. Örnek: min((1,2,3)) Sonuç: 1 Örnek: min(('a', 'k')) Sonuç: 'a' |
fn:sum(arg,arg,...) | Belirtilen düğüm kümesinde her bir düğümün değerlerinin toplamını döndürür. |
Seri oluşturma fonksiyonu
İsim | Açıklama |
---|---|
fn:id((string,string,...),node) | ID değeri string parametresinde belirtilen bir veya birkaç değere eşit olan element düğüm seryalini döndürür. |
fn:idref((string,string,...),node) | Dönüşen element veya özellik düğüm seryali, bu düğümün IDREF değeri string parametresinde belirtilen bir veya birkaç değere eşittir. |
fn:doc(URI) | |
fn:doc-available(URI) | doc() fonksiyonu belge düğümü döndürdüğünde true döndürür, aksi takdirde false döndürür. |
|
Bağlam Fonksiyonları
İsim | Açıklama |
---|---|
fn:position() |
Mevcut olarak işlenen düğümün index konumunu döndürür. Örnek: //book[position()<=3] Sonuç: İlk üç book elementini seçer |
fn:last() |
İşlenen düğüm listesindeki öğe sayısını döndürür. Örnek: //book[last()] Sonuç: En son book elementini seçer |
fn:current-dateTime() | Zaman dilimi ile birlikte mevcut dateTime'yi döndürür. |
fn:current-date() | Zaman dilimi ile birlikte mevcut tarihi döndürür. |
fn:current-time() | Zaman dilimi ile birlikte mevcut zamanı döndürür. |
fn:implicit-timezone() | Gizli zaman dilimini döndürür. |
fn:default-collation() | Öntanımlı karşılaştırma değerini döndürür. |
fn:static-base-uri() | base-uri'nin değerini döndürür. |
XSLT Fonksiyonları
Ayrıca, aşağıdaki dahili XSLT fonksiyonları vardır:
İsim | Açıklama |
---|---|
current() | Mevcut düğümü tek üyeli bir düğüm kümesine dönüştürür. |
document() | Dışarıdaki XML belgelerindeki düğümlere erişmek için kullanılır. |
element-available() | XSLT işleyicisinin belirtilen elementi destekleyip desteklemediğini tespit eder. |
format-number() | Sayıyı dizeye dönüştürür. |
function-available() | XSLT işleyicisinin belirtilen fonksiyonu destekleyip desteklemediğini tespit eder. |
generate-id() | Belirtilen düğümü tanımlayan benzersiz bir dize değeri döndürür. |
key() | <xsl:key> ifadesi ile işaretlenmiş elementleri döndürür. |
node-set | Ağacı bir düğüm kümesine dönüştürür. Oluşturulan düğüm kümesi her zaman tek düğüm içerir ve ağacın kök düğümüdür. |
system-property() | Sistem özelliğinin değerini döndürür. |
unparsed-entity-uri() | Henüz çözümlenmemiş gerçek URI'sine dön |
- Önceki sayfa XSLT Elementleri
- Sonraki sayfa XML Eğitimi