Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Di SQL Server, apa cara terbaik untuk menentukan apakah string yang diberikan adalah XML yang valid atau tidak?

Mungkin tidak perlu memeriksa XML yang valid. Anda dapat memeriksa keberadaan xml yang sesuai tag dengan charindex dalam pernyataan kasus dan ekstrak pesan kesalahan menggunakan substring .

Berikut adalah contoh dengan string XML yang disederhanakan, tetapi saya rasa Anda sudah mengerti.

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

Hasil:

No xml value 1
No xml value 2
Text value in xml


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pengantar Sinonim di SQL Server

  2. Level Isolasi Terbaik untuk menghindari kebuntuan menggunakan kalimat UPDATE di Sql Server 2005

  3. Server vs Sumber Data dalam string koneksi

  4. Bagaimana cara menggunakan nama tabel SQL Server dalam kueri pemilihan dengan variabel?

  5. Bagaimana cara membuat SQL Server menemukan login yang cocok dengan nama yang diberikan?