sql >> Database >  >> RDS >> Sqlserver

VOOR XML PATH(''):Speciale tekens ontsnappen

De XML die u krijgt is correct. Het is XML , geen tekst, en leesbaar als XML door een XML-parser. Speciale tekens zijn correct ontsnapt, zoals ze zouden moeten zijn. Welke clientmodule je ook hebt die die XML verbruikt, moet het als XML ontleden, niet als tekst, en dan wordt het correct weergegeven.

Bijwerken:

Voor het geval dat niet duidelijk is, hoeft u in uw zoekopdracht alleen XML als XML en tekst als tekst te behandelen, en XML niet als tekst te mixen, bijvoorbeeld:

;WITH CodeValues AS
    (
    SELECT
        Number,SUBSTRING(@R,Number,1) AS R,ASCII(SUBSTRING(@U,Number,1)) AS UA
        FROM Numbers
        WHERE Number<=LEN(@R)
    )
, XmlValues AS (
SELECT
        t.RowID
            ,(SELECT
                  ''+c.R
                  FROM Numbers               n
                      INNER JOIN CodeValues  c ON ASCII(SUBSTRING(t.Unreadable,n.Number,1))=c.UA
                  WHERE n.Number<=LEN(t.Unreadable) 
                  FOR XML PATH(''), TYPE
             ) AS readable
        FROM @TestTable t)
SELECT x.RowId,
    x.readable.value('.', 'VARCHAR(8000)') as readable
    FROM XmlValues AS x



  1. Prestaties stimuleren in een hybride cloudconfiguratie

  2. Hoe u alle schendingen van beperkingen in een SQL Server-database kunt vinden

  3. Membership.ValidateUser retourneert altijd false na upgrade naar VS 2010 / .NET 4.0

  4. SqlDependency activeert de OnChange-gebeurtenis niet wanneer de dataset wordt gewijzigd