Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

Fonction local-name (XQuery)

Retourne la partie locale du nom de $arg en tant que xs:string qui soit sera une chaîne de longueur zéro, soit aura la forme lexicale de xs:NCName. Si l'argument n'est pas spécifié, la valeur par défaut est le nœud du contexte.

fn:local-name() as xs:string
fn:local-name($arg as node()?) as xs:string

$arg

Nom du nœud dont la partie local-name sera extraite.

  • Dans SQL Server, fn:local-name() sans argument peut uniquement être utilisé dans le contexte d'un prédicat dépendant du contexte. Spécifiquement, il ne peut être utilisé qu'entre crochets ([ ]).

  • Si l'argument est fourni et qu'il correspond à la séquence vide, la fonction retourne la chaîne de longueur zéro.

  • Si le nœud cible n'a pas de nom car il s'agit d'un nœud de document, de commentaire ou de texte, la fonction retourne la chaîne de longueur zéro.

Cette rubrique propose des exemples de XQuery relatifs à des instances XML stockées dans différentes colonnes de type xml tirées de la base de données AdventureWorks.

A.Extraction du nom local d'un nœud spécifique

La requête suivante est spécifiée sur une instance XML non typée. L'expression de requête, local-name(/ROOT[1]), extrait la partie locale du nom du nœud spécifié.

declare @x xml
set @x='<ROOT><a>111</a></ROOT>'
SELECT @x.query('local-name(/ROOT[1])')
-- result = ROOT

La requête suivante est définie sur la colonne Instructions, une colonne xml typée, de la table ProductModel. L'expression local-name(/AWMI:root[1]/AWMI:Location[1]) retourne le nom local, Location, du nœud spécifié.

SELECT Instructions.query('
declare namespace AWMI="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions" ;
     local-name(/AWMI:root[1]/AWMI:Location[1])') as Result
FROM Production.ProductModel
WHERE ProductModelID=7
-- result = Location

B.Utilisation de local-name sans argument dans un prédicat

La requête suivante est définie sur la colonne Instructions, une colonne xml typée, de la table ProductModel. L'expression retourne tous les enfants de l'élément <root> dont la partie locale de QName est « Location ». La fonction local-name() est spécifiée dans le prédicat et est dépourvue d'argument. Le nœud du contexte est utilisé par la fonction.

SELECT Instructions.query('
declare namespace AWMI="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions" ;
  /AWMI:root//*[local-name() = "Location"]') as Result
FROM Production.ProductModel
WHERE ProductModelID=7

La requête retourne tous les enfants <Location> de l'élément <root>.

Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft