Có lẽ không cần thiết phải kiểm tra XML hợp lệ. Bạn có thể kiểm tra sự hiện diện của xml
thích hợp thẻ với charindex
trong một câu lệnh trường hợp và trích xuất thông báo lỗi bằng cách sử dụng substring
.
Đây là một ví dụ với một chuỗi XML được đơn giản hóa nhưng tôi nghĩ rằng bạn hiểu rõ.
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
Kết quả:
No xml value 1
No xml value 2
Text value in xml