Ich habe einige XML, die mit einem XmlDocument-Objekt in C# erstellen erstellt.SQL 2005 XML Special/Escaped Zeichen aus System.Xml.XmlDocument.OuterXml
Ich bin dann Einfügen der XML-Daten in eine XML-Spalte in SQL 2005 mit der XmlDocument.OuterXml-Methode, um die rohe XML zu erhalten.
Das Problem, das ich habe, ist, dass die XML einige Sonderzeichen enthält. Nämlich: 
Das liegt daran, dass das XML aus Benutzereingaben von verschiedenen Quellen aufgebaut ist.
Wenn ich die Einfügung ausführe, erhalte ich eine SQL-Fehlermeldung, die besagt, XML-Analyse: illegales XML-Zeichen.
CREATE TABLE #MyTable (MyColumn XML)
INSERT INTO #MyTable VALUES ('<Element></Element>')
Msg 9420, Ebene 16, Status 1, Zeile 2
XML-Analyse: Zeile 1, Zeichen 15, illegal xml Charakter
Kann mich jemand in eine Richtung zeigen, wie ich kann, löse das?
Es wird extrem schwierig für mich sein, irgendetwas am XmlDocument-Objekt oder Original-XML selbst zu ändern, jedoch kann ich den Mechanismus ändern, den ich verwende, um das RAW-XML zu erhalten. Ich kann meine Datenbankeinstellungen auch ändern, wenn erforderlich.
gibt es eine Möglichkeit, die XmlDocument o zu machen bjekt erzwingen die gleichen Validierungsregeln? Diese Zeichen stammen von einem Benutzer, der sie in ein HTML-Textfeld eingibt/einfügt und dieser TextBox.Text wurde dann XmlNode.InnerText zugewiesen. Wenn es sich um ungültiges XML handelt, bin ich überrascht, dass es an diesem Punkt nicht abgestürzt ist. –
Werfen Sie einen Blick auf http://msdn.microsoft.com/en-us/library/56xykaw6.aspx –
Ich muss die ungültigen Daten nicht beibehalten. Es ist alles Benutzereingaben von Webseiten und so nicht sicher, wie irgendwelche Escape-Charaktere sowieso dort eingestiegen sind. Ich möchte es reinigen, ich brauche nur eine elegante Lösung. Ich habe einen Code gefunden, der ungültige Zeichen löscht, indem er die ganze Zeichenfolge durchläuft. Das erscheint mir einfach falsch, ich sollte nicht kodieren, welche Zeichen gültig sind und welche nicht. –