Il n'est peut-être pas nécessaire de vérifier le XML valide. Vous pouvez vérifier la présence du xml
approprié balise avec charindex
dans une instruction case et extrayez le message d'erreur en utilisant substring
.
Voici un exemple avec une chaîne XML simplifiée mais je pense que vous avez compris.
declare @T table(ID int, Col1 nvarchar(1000))
insert into @T values
(1, 'No xml value 1'),
(2, 'No xml value 2'),
(3, '<root><item>Text value in xml</item></root>')
select
case when charindex('<item>', Col1) = 0
then Col1
else
substring(Col1, charindex('<item>', Col1)+6, charindex('</item>', Col1)-charindex('<item>', Col1)-6)
end
from @T
Résultat :
No xml value 1
No xml value 2
Text value in xml