FindFirst-Altova

www.altova.com Agrandir/Réduire tout Imprimer cette rubrique Un niveau supérieur

Accueil > 

FindFirst-Altova

Click to expand/collapsefind-first [altova:]

find-first((Sequence as item()*)(Condition( Sequence-Item as xs:boolean)) as item()?     XP3.1 XQ3.1

Cette fonction prend deux arguments. Le premier argument est une séquence d'un ou de plusieurs items de tout type de données. Le second argument, Condition, est une référence à une fonction XPath qui prend un argument (possède une arité de 1) et retourne un booléen. Chaque item de Sequence est soumis à son tour à la fonction référencée dans Condition. (Rappel : cette fonction prend un seul argument.) Le premier item Sequence qui cause la fonction dans Condition à évaluer à true() est retourné en tant que le résultat de find-first, et l'itération s'arrête.

 

find-first(5 to 10, function($a) {$a mod 2 = 0}) retourne xs:integer 6

L'argument Condition référence la fonction en ligne XPath 3.0, function(), qui déclare une fonction en ligne nommée $a puis la définit. Chaque item dans l'argument Sequence de find-first est passé à son tour à $a en tant que sa valeur d'entrée. La valeur d'entrée est testée sur la condition dans la définition de la fonction ($a mod 2 = 0). La première valeur d'entrée pour satisfaire cette condition est retournée en tant que le résultat de find-first (dans ce cas 6).

 

find-first((1 to 10), (function($a) {$a+3=7})) retourne xs:integer 4

 

 

Autres exemples

Si le fichier C:\Temp\Customers.xml existe :

find-first( ("C:\Temp\Customers.xml", "http://www.altova.com/index.html"), (doc-available#1) ) retourne xs:string C:\Temp\Customers.xml

 

Si le fichier C:\Temp\Customers.xml n'existe pas et que http://www.altova.com/index.html existe :

find-first( ("C:\Temp\Customers.xml", "http://www.altova.com/index.html"), (doc-available#1) ) retourne xs:string http://www.altova.com/index.html

 

Si le fichier C:\Temp\Customers.xml n'existe pas, et que http://www.altova.com/index.html n'existe pas non plus :

find-first( ("C:\Temp\Customers.xml", "http://www.altova.com/index.html"), (doc-available#1) ) ne retourne aucun résultat

 

Notes à propos des exemples indiqués ci-dessus

La fonction XPath 3.0, doc-available, prend un seul argument de chaîne, qui est utilisé en tant qu'URI, et retourne true si un nœud de document est trouvé à l'URI soumis. (Le document à l'URI soumis doit donc être un document XML.)
La fonction doc-available peut être utilisée pour Condition, le second argument de find-first, parce qu'il ne prend qu'un seul argument (arité=1), parce qu'il prend un item() en tant qu'entrée (une chaîne qui est utilisée en tant qu'URI), et retourne une valeur booléenne.
Veuillez noter que la fonction doc-available est uniquement référencée, elle n'est pas appelée. Le suffixe #1 qui y est attaché indique une fonction avec une arité de 1. Sous sa forme complète, doc-available#1 signifie simplement : Utiliser la fonction doc-availabe() à l'arité=1, en l'y passant en tant que son seul argument, chacun à son tour, chacun des items dans la première séquence. En résultat, chacun des deux chaînes sera passée à doc-available(), qui utilise la chaîne en tant qu'URI et teste si un nœud de document existe à l'URI. S'il en existe un, doc-available() évalue à true() et cette chaîne est retournée en tant que le résultat de la fonction find-first. Note à propos de la fonction doc-available() : les chemins relatifs sont résolus relativement à l'URI de base actuel, qui est par défaut l'URI du document XML à partir duquel la fonction est chargée.

 

 


© 2019 Altova GmbH