Tutoriel XPathlogin
Tutoriel XPath
auteur:php.cn  temps de mise à jour:2022-04-20 14:10:21

Fonctions XPath, XQuery et XSLT


XPath, .

Manuel de référence des fonctions
    < li>

    Accès


  • Erreurs et suivi

  • Valeurs
    • 存取

    • 错误和跟踪

    • 数值

    • 字符串

    • AnyURI

    • 逻辑

    • 持续时间/日期/时间

    • QName

    • 节点

    • 序列

    • Context

  • Chaîne lamp.gif

  • AnyURI

  • lamp.gif Logique

  • Durée/Date/Heure

  • QName
  • 名称说明
    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 属性的值。
    Nœud

  • Séquence
  • Contexte
    名称说明
    • 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)用于对查询进行 debug。
<🎜><🎜> Le préfixe par défaut de l'espace de noms de la fonction est fn :<🎜><🎜>< 🎜> L'URI de l'espace de noms de la fonction est : http://www.w3.org/2005/xpath-functions<🎜><🎜><🎜>Fonction d'accès<🎜><🎜>
NomDescription
fn:node-name(node)Renvoie le nom du nœud du paramètre.
fn:nillad(node)Renvoie une valeur booléenne indiquant s'il faut rejeter le nœud de paramètre.
fn:data(item.item,...)Accepte une séquence d'éléments et renvoie une séquence de valeurs atomiques.
  • <🎜>fn:base-uri()<🎜>
  • < 🎜>fn:base-uri(node)<🎜>
Renvoie la valeur de l'attribut base-uri du nœud actuel ou du nœud spécifié.
fn:document-uri(node)Renvoie la valeur de l'attribut document-uri du nœud spécifié.
<🎜><🎜>Fonctions d'erreur et de suivi<🎜><🎜>
NomDescription
  • <🎜>fn:erreur()<🎜>
  • <🎜>fn:erreur(erreur)<🎜>
  • <🎜>fn : erreur(erreur,description)<🎜>
  • <🎜>fn:erreur(erreur,description,erreur-objet)<🎜>
< 🎜>Exemple : error(fn:QName('http://example.com/test', 'err:toohigh'), 'Error: Price is trop high')<🎜><🎜>Résultat : traiter l'environnement en externe Renvoie http://example.com/test#toohigh et la chaîne "Erreur : le prix est trop élevé". <🎜>
fn:trace(value,label) est utilisé pour déboguer les requêtes.

Fonctions liées aux valeurs numériques

名称说明
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

Fonctions liées aux chaînes

NomDescription
fn : string(arg)

Renvoie la valeur de chaîne de l'argument. Les paramètres peuvent être des nombres, des valeurs logiques ou des ensembles de nœuds.

Exemple : string(314)

Résultat : "314"

fn:codepoints-to-string(int,int, ...)

Renvoie une chaîne basée sur une séquence de points de code.

Exemple : points de code vers chaîne (84, 104, 233, 114, 232, 115, 101)

Résultat : 'Thérèse'

fn:string-to-codepoints(string)

Renvoie une séquence de points de code basée sur une chaîne.

Exemple : string-to-codepoints("Thérèse")

Résultats : 84, 104, 233, 114, 232, 115, 101

fn:codepoint-equal(comp1,comp2)Selon la comparaison des points de code Unicode, si la valeur de comp1 est égale à la valeur de comp2, alors true est renvoyé. (http://www.w3.org/2005/02/xpath-functions/collation/codepoint), sinon false est renvoyé.
  • fn:compare(comp1,comp2)

  • fn:compare(comp1,comp2,collation )

Si comp1 est inférieur à comp2, renvoie -1. Si comp1 est égal à comp2, 0 est renvoyé. Si comp1 est supérieur à comp2, renvoie 1. (En fonction des règles de comparaison utilisées).

Exemple : compare('ghi', 'ghi')

Résultat : 0

fn:concat(string,string, ...)

Renvoie la concaténation des chaînes.

Exemple : concat('XPath ','is ','FUN!')

Résultat : 'XPath is FUN!'

fn:string-join((string,string,...),sep)

Utilisez le paramètre sep comme séparateur pour renvoyer la chaîne une fois les paramètres de chaîne épissés.

Exemple : string-join(('We', 'are', 'have', 'fun!'), ' ')

Résultat : 'Nous nous amusons'

Exemple : string-join(('We', 'are', 'have', 'fun!'))

Résultat : 'Wearehavingfun!'

Exemple : string-join((), 'sep')

Résultat : ''

  • fn:substring(string ,start,len)

  • fn:substring(string,start)

Renvoie la valeur spécifiée à partir du position de départ La longueur de la sous-chaîne. L'index du premier caractère est 1. Si l'argument len ​​est omis, la sous-chaîne depuis le début jusqu'à la fin de la chaîne est renvoyée.

Exemple : substring('Beatles',1,4)

Résultat : 'Beat'

Exemple : substring('Beatles',2)

Résultat : 'eatles'

  • fn:string-length(string)

  • fn:string-length()

Renvoie la longueur de la chaîne spécifiée. S'il n'y a pas d'argument de chaîne, renvoie la longueur de la valeur de chaîne du nœud actuel.

Exemple : string-length('Beatles')

Résultat : 7

  • fn:normalize-space(string)

  • fn:normalize-space()

Supprimez les espaces au début et à la fin de la chaîne spécifiée, remplacez toutes les séquences d'espaces internes par un, puis renvoyez le résultat. S'il n'y a pas de paramètre de chaîne, le nœud actuel est traité.

Exemple : normalize-space('Le XML')

Résultat : 'Le XML'

fn:normalize-unicode( )Effectuer la normalisation Unicode.
fn:upper-case(string)

Convertissez le paramètre de chaîne en majuscule.

Exemple : majuscule('Le XML')

Résultat : 'LE XML'

fn:minuscule( string)

Convertissez le paramètre de chaîne en minuscules.

Exemple : minuscule('Le XML')

Résultat : 'le xml'

fn:translate(string1, string2,string3)

Remplacez string2 dans string1 par string3.

Exemple : traduire('12:30','30','45')

Résultat : '12:45'

Exemple : traduire('12: 30','03','54')

Résultat : '12:45'

Exemple : traduire('12:30','0123','abcd')

Résultat : 'bc:da'

fn:escape-uri(stringURI,esc-res)

Exemple : escape -uri("http://example.com/test#car", true())

Résultat : "http%3A%2F%2Fexample.com%2Ftest#car"

Exemple : escape-uri("http://example.com/test#car", false())

Résultat : "http://example.com/test#car"

Exemple : escape-uri ("http://example.com/~bébé", false())

Résultat : "http://example.com/~b%C3%A9b%C3% A9"

fn:contains(string1,string2)

Si string1 contient string2, renvoie true, sinon renvoie false.

Exemple : contient('XML','XM')

Résultat : vrai

fn:starts-with(string1, string2)

Si string1 commence par string2, renvoie vrai, sinon renvoie faux.

Exemple : commence par('XML','X')

Résultat : vrai

fn:se termine par( string1,string2)

Si string1 se termine par string2, renvoie true, sinon renvoie false.

Exemple : se termine par('XML','X')

Résultat : faux

fn:substring-before( string1,string2)

Renvoie la sous-chaîne de string2 avant qu'elle n'apparaisse dans string1.

Exemple : substring-before('12/10','/')

Résultat : '12'

fn : substring-after(string1,string2)

Renvoie la sous-chaîne après l'apparition de string2 dans string1.

Exemple : substring-after('12/10','/')

Résultat : '10'

fn : matches(string,pattern)

Renvoie vrai si le paramètre de chaîne correspond au modèle spécifié, sinon renvoie faux.

Exemple : matches("Merano", "ran")

Résultat : vrai

fn:replace(string,pattern,replace)

Remplacez le modèle spécifié par le paramètre de remplacement, et Renvoie les résultats.

Exemple : replace("Bella Italia", "l", "*")

Résultat : 'Be**a Ita*ia'

Exemple : replace( "Bella Italia", "l", "")

Résultat : 'Bea Itaia'

fn:tokenize(string,pattern)

Exemple : tokenize("XPath is fun", "s+")

Résultat : ("XPath", "is", "fun")

Fonction pour anyURI

NomDescription
名称说明
fn:resolve-uri(relative,base) 

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

<🎜><🎜><🎜><🎜><🎜>Fonctions sur les valeurs booléennes<🎜><🎜><🎜><🎜><🎜>fn:boolean(arg)<🎜><🎜>Retourner un numéro , une chaîne ou une valeur booléenne pour un ensemble de nœuds. <🎜><🎜><🎜><🎜>fn:not(arg)<🎜><🎜><🎜>Tout d'abord, utilisez la fonction boolean() pour restaurer le paramètre à une valeur booléenne. Renvoie vrai si la valeur booléenne est fausse, vrai sinon. <🎜><🎜>Exemple : not(true())<🎜><🎜>Résultat : false<🎜><🎜><🎜><🎜><🎜>fn:true()<🎜><🎜>< 🎜>Renvoie le booléen vrai. <🎜><🎜>Exemple : true()<🎜><🎜>Résultat : true<🎜><🎜><🎜><🎜><🎜>fn:false()<🎜><🎜><🎜> Retour booléen faux. <🎜><🎜>Exemple : false()<🎜><🎜>Résultat : false<🎜><🎜><🎜><🎜><🎜>

Fonctions sur la durée, la date et l'heure

Fonctions d'extraction de composants pour la date, l'heure et la durée

NomDescription
NomDescription
fn:dateTime(date,time)Convertissez le paramètre en date et heure.
fn:years-from-duration(datetimedur)Renvoie l'entier de la partie année de la valeur de l'argument, exprimé en notation lexicale standard.
fn:months-from-duration(datetimedur)Renvoie l'entier de la partie mois de la valeur du paramètre, exprimé en notation lexicale standard.
fn:days-from-duration(datetimedur) Renvoie l'entier de la partie jours de la valeur de l'argument, exprimé en notation lexicale standard.
fn:hours-from-duration(datetimedur) Renvoie la partie heure de la valeur du paramètre sous forme d'entier, exprimée en notation lexicale standard.
fn:minutes-from-duration(datetimedur) Renvoie la partie minutes de la valeur du paramètre sous forme d'entier, exprimée en notation lexicale standard.
fn:seconds-from-duration(datetimedur)Renvoie la partie décimale de la partie minutes de la valeur du paramètre, exprimée en notation lexicale standard.
fn:year-from-dateTime(datetime)

Renvoie la partie entière de l'année de la valeur locale du paramètre.

Exemple : année à partir de la dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

Résultat : 2005

fn:month-from-dateTime(datetime)

Renvoie l'entier de la partie mois de la valeur locale du paramètre.

Exemple : month-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

Résultat : 01

fn:day-from-dateTime(datetime)

Renvoie l'entier de la partie jour de la valeur locale du paramètre.

Exemple : day-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

Résultat : 10

fn:hours-from-dateTime(datetime)

Renvoie la partie heure de la valeur locale du paramètre sous forme d'entier.

Exemple : hours-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

Résultat : 12

fn:minutes-from-dateTime(datetime)

Renvoie l'entier de la partie minutes de la valeur locale du paramètre.

Exemple : minutes-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

Résultat : 30

fn:seconds-from-dateTime(datetime)

Renvoie le nombre décimal de la partie secondes de la valeur locale du paramètre.

Exemple : secondes à partir de la dateTime(xs:dateTime("2005-01-10T12:30:00-04:10"))

Résultat : 0

fn:timezone-from-dateTime(datetime)Renvoie la partie fuseau horaire du paramètre, le cas échéant.
fn:year-from-date(date)

Renvoie l'entier représentant l'année dans la valeur locale du paramètre.

Exemple : année à partir de la date(xs:date("2005-04-23"))

Résultat : 2005

fn:month-from-date(date)

Renvoie l'entier représentant le mois dans la valeur locale du paramètre.

Exemple : mois à partir de la date(xs:date("2005-04-23"))

Résultat : 4

fn : day-from-date(date)

Renvoie l'entier représentant le jour dans la valeur locale du paramètre.

Exemple : jour à partir de la date(xs:date("2005-04-23"))

Résultat : 23

fn:timezone-from-date(date)Renvoie la partie fuseau horaire du paramètre, si elle est présente.
fn:hours-from-time(time)

Renvoie l'entier représentant la partie heures de la valeur locale du paramètre.

Exemple : heures à partir de l'heure(xs:time("10:22:00"))

Résultat : 10

fn:minutes-from-time(time)

Renvoie l'entier représentant la partie minutes de la valeur locale du paramètre.

Exemple : minutes à partir du temps(xs:time("10:22:00"))

Résultat : 22

fn:seconds-from-time(time)

Renvoie l'entier représentant la partie secondes dans la valeur locale du paramètre.

Exemple : secondes à partir du temps(xs:time("10:22:00"))

Résultat : 0

fn:timezone-from-time(time)Renvoie la partie fuseau horaire du paramètre, si elle est présente.
fn:adjust-dateTime-to-timezone(datetime,timezone)Si le paramètre timezone est vide, renvoie dateTime sans fuseau horaire. Sinon, une dateTime avec le fuseau horaire est renvoyée.
fn:adjust-date-to-timezone(date,timezone)Si le paramètre timezone est vide, renvoie la date sans fuseau horaire. Sinon, une date avec le fuseau horaire est renvoyée.
fn:adjust-time-to-timezone(time,timezone)Si le paramètre timezone est vide, l'heure sans fuseau horaire est renvoyée. Sinon, renvoie l'heure avec le fuseau horaire.

Fonctions liées aux QNames

NomDescription
名称说明
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:QName()<🎜><🎜> < 🎜><🎜><🎜><🎜>fn:local-name-from-QName()<🎜><🎜> <🎜><🎜><🎜><🎜>fn:namespace-uri-from-QName ( )<🎜><🎜> <🎜><🎜><🎜><🎜>fn:namespace-uri-for-prefix()<🎜><🎜> <🎜><🎜><🎜><🎜>fn : in-scope-prefixes()<🎜><🎜> <🎜><🎜><🎜><🎜>fn:resolve-QName()<🎜><🎜> <🎜><🎜><🎜><🎜 >

Fonctions sur les nœuds

名称说明
  • fn:name()

  • fn:name(nodeset)

返回当前节点的名称或指定节点集中的第一个节点。
  • fn:local-name()

  • fn:local-name(nodeset)

返回当前节点的名称或指定节点集中的第一个节点 - 不带有命名空间前缀。
  • fn:namespace-uri()

  • fn:namespace-uri(nodeset)

返回当前节点或指定节点集中第一个节点的命名空间 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:root()

  • fn:root(node)

返回当前节点或指定的节点所属的节点树的根节点。通常是文档节点。

Fonctions liées aux séquences

Fonctions générales

NomDescription
fn:index-of((item,item,...),searchitem)

Renvoie la séquence d'éléments qui est égale au paramètre searchitem Emplacement.

Exemple : index-de ((15, 40, 25, 40, 10), 40)

Résultat : (2, 4)

Exemple : index-of (("a", "dog", "and", "a", "duck"), "a")

Résultat (1, 4)

Exemple : index-de ((15, 40, 25, 40, 10), 18)

Résultat : ()

fn:supprimer((élément,élément,. ..),position)

Renvoie une nouvelle séquence construite à partir du paramètre item - tout en supprimant l'élément spécifié par le paramètre position.

Exemple : supprimer(("ab", "cd", "ef"), 0)

Résultat : ("ab", "cd", "ef")

Exemple : supprimer(("ab", "cd", "ef"), 1)

Résultat : ("cd", "ef")

Exemple : supprimer( ("ab", "cd", "ef"), 4)

Résultat : ("ab", "cd", "ef")

fn:empty(item,item,...)

Si la valeur du paramètre est une séquence vide, renvoie vrai, sinon renvoie faux.

Exemple : vide(supprimer(("ab", "cd"), 1))

Résultat : faux

fn :exists(item,item,...)

Si la valeur du paramètre n'est pas une séquence vide, renvoie true, sinon renvoie false.

Exemple : exist(remove(("ab"), 1))

Résultat : false

fn:distinct-values ((item,item,...),collation)

Renvoie la seule valeur distincte.

Exemple : valeurs distinctes((1, 2, 3, 1, 2))

Résultat : (1, 2, 3)

fn:insert-before((item,item,...),pos,inserts)

Renvoie une nouvelle séquence construite par le paramètre item - lors de l'insertion d'insertions à la position spécifiée par le paramètre pos La valeur du paramètre.

Exemple : insert-before(("ab", "cd"), 0, "gh")

Résultat : ("gh", "ab", "cd")

Exemple : insert-before(("ab", "cd"), 1, "gh")

Résultat : ("gh", "ab", "cd")

Exemple : insert-before(("ab", "cd"), 2, "gh")

Résultat : ("ab", "gh", "cd")

Exemple : insert-before(("ab", "cd"), 5, "gh")

Résultat : ("ab", "cd", "gh")

fn:reverse((item,item,...))

Renvoie l'ordre inverse de l'élément spécifié.

Exemple : reverse(("ab", "cd", "ef"))

Résultat : ("ef", "cd", "ab")

Exemple : reverse(("ab"))

Résultat : ("ab")

fn:subsequence((item,item,...),start,len)

Renvoie la position spécifiée par le paramètre de début et renvoie le item séquence, séquence La longueur de est spécifiée par le paramètre len. La position du premier élément est 1.

Exemple : sous-séquence(($item1, $item2, $item3,...), 3)

Résultat : ($item3,...)

Exemple :subsequence(($item1, $item2, $item3, ...), 2, 2)

Résultat : ($item2, $item3)

fn:unordered((item,item,...))Renvoyer les articles dans un ordre déterminé par l'implémentation.

Fonction pour tester la capacité de séquence

NomDescription
名称说明
fn:zero-or-one(item,item,...)如果参数包含零个或一个项目,则返回参数,否则生成错误。
fn:one-or-more(item,item,...)如果参数包含一个或多个项目,则返回参数,否则生成错误。
fn:exactly-one(item,item,...)如果参数包含一个项目,则返回参数,否则生成错误。

fn:zéro-ou-un(élément,élément ,...)

Renvoie le paramètre s'il contient zéro ou un élément, sinon génère une erreur.
名称说明
fn:deep-equal(param1,param2,collation)如果 param1 和 param2 与彼此相等(deep-equal),则返回 true,否则返回 false。

fn:one-or-more(item,item,...)

名称说明
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,...)返回指定节点集中每个节点的数值的总和。
Renvoie le paramètre s'il contient un ou plusieurs éléments, sinon génère une erreur. <🎜><🎜><🎜><🎜>fn:exactly-one(item,item,...)<🎜><🎜>Renvoie le paramètre s'il contient un élément, sinon génère une erreur. <🎜><🎜><🎜><🎜><🎜><🎜>Égaux, Union, Intersection et Sauf<🎜><🎜><🎜><🎜><🎜>fn:deep-equal(param1,param2 ,collation)<🎜><🎜>Renvoie vrai si param1 et param2 sont égaux l'un à l'autre (deep-equal), sinon renvoie faux. <🎜><🎜><🎜><🎜><🎜><🎜>Fonction totale<🎜><🎜>
NomDescription
<🎜><🎜><🎜>fn:count((item,item,...)) <🎜><🎜>Renvoie le nombre de nœuds. <🎜><🎜><🎜><🎜>fn:avg((arg,arg,...))<🎜><🎜>Renvoie la moyenne des valeurs des paramètres. Exemple : moyenne((1,2,3)) Résultat : 2<🎜><🎜><🎜><🎜>fn:max((arg,arg,...))<🎜><🎜>Renvoie les paramètres supérieurs aux autres paramètres. Exemple : max((1,2,3)) Résultat : 3 Exemple : max(('a', 'k')) Résultat : 'k'<🎜><🎜><🎜><🎜>fn:min((arg,arg,...))<🎜><🎜>Renvoie des paramètres plus petits que les autres paramètres. Exemple : min((1,2,3)) Résultat : 1 Exemple : min(('a', 'k')) Résultat : 'a'<🎜><🎜><🎜><🎜>fn:sum(arg,arg,...)<🎜><🎜>Renvoie la somme des valeurs de chaque nœud dans le nœud spécifié ensemble. <🎜><🎜><🎜><🎜>

Fonction pour générer une séquence

NomDescription
名称说明
fn:id((string,string,...),node)Returns a sequence of element nodes that have an ID value equal to the value of one or more of the values specified in the string argument
fn:idref((string,string,...),node)Returns a sequence of element or attribute nodes that have an IDREF value equal to the value of one or more of the values specified in the string argument
fn:doc(URI) 
fn:doc-available(URI)如果 doc() 函数返回文档节点,则返回 true,否则返回 false。
  • fn:collection()

  • fn:collection(string)

 

Fonction contextuelle

名称说明
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 的值。

Site Web PHP chinois