declare @myDoc xml
set @myDoc = '<Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.mydomain.org/MySchema.xsd" SectionId="ABCD" Description="Some stuff">
<ProductDescription ProductID="1" ProductName="Road Bike">
<Features>
<Warranty>1 year parts and labor</Warranty>
<Maintenance>3 year parts and labor extended maintenance is available</Maintenance>
</Features>
</ProductDescription>
</Form>'
;WITH XMLNAMESPACES( 'http://www.w3.org/2001/XMLSchema-instance' as xsi, 'http://www.w3.org/2001/XMLSchema' as xsd, DEFAULT 'http://www.mydomain.org/MySchema.xsd')
SELECT @myDoc.value('/Form[@SectionId][0]', 'varchar')
J'ai besoin d'obtenir la valeur d'attribut de SectionId en tant que nvarchar? Comment puis-je le fais ...Requête XML DML pour l'attribut
T et R Mark
Merci marc, mais je n'ajoute pas les espaces de noms, le producteur du xml le fait, je dois les conserver car le SELECT renvoie NULL sans eux. Le vrai xml est en fait stocké dans une colonne xml non typée et non dans une variable de type xml. J'utilise .nodes() car je ne peux pas garantir qu'il n'y en aura qu'une seule. Mais je vois votre point. –