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 string (XQuery)

Renvoie la valeur de $arg représenté sous la forme d'une chaîne.

fn:string() as xs:string
fn:string($arg as item()?) as xs:string

$arg

Nœud ou valeur atomique.

  • Si $arg est la séquence vide, la chaîne nulle est renvoyée.

  • Si $arg est un nœud, la fonction renvoie la valeur de chaîne du nœud obtenu à l'aide de l'accesseur string-value. Celui-ci est défini dans les spécifications W3C XQuery 1.0 et XPath 2.0 Data Model.

  • Si $arg est une valeur atomique, la fonction retourne la même chaîne que celle renvoyée par l'expression convertie vers xs:string, $arg, sauf si spécifié autrement.

  • Si le type de $arg est xs:anyURI, l'URI est converti en une chaîne sans caractères spéciaux d'échappement.

  • Dans cette implémentation, la fonction fn:string() ne peut être utilisée sans argument que dans le contexte d'un prédicat dépendant du contexte. En particulier, elle ne peut être utilisée qu'entre crochets ([ ]).

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.Utilisation de la fonction string

La requête suivante extrait le nœud d'élément enfant <Features> de l'élément <ProductDescription>.

SELECT CatalogDescription.query('
declare namespace PD="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription";
 /PD:ProductDescription/PD:Features
')
FROM Production.ProductModel
WHERE ProductModelID=19

Voici le résultat partiel :

<PD:Features xmlns:PD="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription">
   These are the product highlights. 
   <p1:Warranty xmlns:p1="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain">
    <p1:WarrantyPeriod>3 years</p1:WarrantyPeriod>
    <p1:Description>parts and labor</p1:Description>
   </p1:Warranty>
       ...
</PD:Features>

Si vous spécifiez la fonction string(), vous recevez la valeur de chaîne du nœud indiqué.

SELECT CatalogDescription.query('
declare namespace PD="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription";
 string(/PD:ProductDescription[1]/PD:Features[1])
')
FROM Production.ProductModel
WHERE ProductModelID=19

Le résultat partiel est le suivant.

These are the product highlights. 
3 yearsparts and labor...  

B.Utilisation de la fonction string sur différents nœuds

Dans l'exemple suivant, une instance XML est affectée à une variable de type xml. Des requêtes sont spécifiées pour illustrer le résultat de l'application de la fonction string() à différents nœuds.

declare @x xml
set @x = '<?xml version="1.0" encoding="UTF-8" ?>
<!--  This is a comment -->
<root>
  <a>10</a>
just text
  <b attr="x">20</b>
</root>
'

La requête suivante extrait la valeur de chaîne du nœud de document. Cette valeur est le fruit de la concaténation de la valeur de chaîne de tous ses nœuds de texte descendants.

select @x.query('string(/)')

Voici le résultat obtenu :

This is a comment 10
just text
 20

La requête suivante essaie d'extraire la valeur de chaîne d'un nœud d'instruction de traitement. Le résultat est une séquence vide, car il ne contient pas de nœud de texte.

select @x.query('string(/processing-instruction()[1])')

La requête suivante extrait la valeur de chaîne du nœud de commentaire et renvoie le nœud de texte.

select @x.query('string(/comment()[1])')

Voici le résultat obtenu :

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

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2014 Microsoft