ich möchte ein XML mit Hilfe von MS SQL (T-SQL) erzeugen.
Dafür benutze ich folgendes Script:
SELECT (SELECT it.Artikelnummer [@id], ( SELECT it2.SpracheID [@code], '<![CDATA[' + it2.Internettext + ']]>' FROM Internettexte it2 (NOLOCK) WHERE it2.ExterneArtikelnummer = it.ExterneArtikelnummer -- it.SpracheID <> it2.SpracheID FOR XML PATH ('text'), TYPE ) FROM Internettexte it (NOLOCK) WHERE it.ExterneArtikelnummer <> '' GROUP BY it.ExterneArtikelnummer FOR XML PATH ('artikel'), TYPE) FOR XML PATH (''), ROOT ('Internettexte')
Das Verhalten des SQL-Server ist korrekt, weil sonst die XML-Struktur nicht korrekt wäre.
Du hast jetzt zwei Möglichkeiten:
1. Entweder Du konvertierst Den HTML-Code beim Verarbeiten wieder. Hier könntest Du versuchen die Klassen HttpUtility.HtmlDecode & HttpUtility.HtmlEncode zu verwenden.
oder
2. Du verzichtest auf den äußeren XML-Wrapper und läßt Dir das Ergebnis vom SQL-Server direkt in HTML zurückggeben.
Nebenbei bemerkt: Ich habe gerade mit FOR XML EXPLICIT und dem RAW Modus experimentiert.