Maison >base de données >tutoriel mysql >Comment extraire les valeurs d'attribut des données XML à l'aide de requêtes SQL ?

Comment extraire les valeurs d'attribut des données XML à l'aide de requêtes SQL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-20 15:55:13818parcourir

How to Extract Attribute Values from XML Data using SQL Queries?

Récupération de valeurs d'attribut à partir de données XML dans SQL

Lorsque vous travaillez avec des données XML dans des bases de données SQL, il est souvent nécessaire d'extraire des valeurs d'attribut spécifiques. Par exemple, considérons le document XML suivant stocké dans une table :

<email>
  <account language="en" ... />
</email>

Pour récupérer la valeur de l'attribut de langue, nous pouvons utiliser une expression XQuery dans la requête SQL. XQuery fournit un moyen puissant de parcourir et d'extraire des informations à partir de documents XML.

DECLARE @xml XML =
'<email>
  <account language="en" />
</email>'

SELECT @xml.value('(/email/account/@language)[1]', 'nvarchar(max)')

Cette requête utilise la fonction value() pour évaluer l'expression XQuery et renvoyer la valeur du nœud correspondant à l'expression XPath spécifiée. Dans ce cas, l'expression XPath (/email/account/@langue)[1] sélectionne la première valeur d'attribut de langue sous l'élément de compte dans le document XML.

Alternativement, si les données XML sont stockées dans un tableau comme indiqué :

CREATE TABLE @t (m XML)
INSERT INTO @t VALUES
    ('<email><account language="en" /></email>'),
    ('<email><account language="fr" /></email>')

Nous pouvons récupérer les valeurs d'attribut à l'aide d'une sous-requête corrélée comme suit :

SELECT m.value('(/email/account/@language)[1]', 'nvarchar(max)')
FROM @t

En utilisant ces techniques, nous pouvons récupérer efficacement les valeurs d'attribut des données XML dans nos requêtes SQL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn