Entfernen Sie alle Hexadezimalzeichen vor dem Laden der Zeichenfolge in das XML-Dokumentobjekt?

9

Ich habe eine XML-Zeichenkette, die auf dem Server in einen Ashx-Handler gepostet wird. Die XML-Zeichenfolge wird auf der Clientseite erstellt und basiert auf ein paar verschiedenen Eingaben in einem Formular. Gelegentlich werden einige Benutzer kopieren und aus anderen Quellen in das Webformular einfügen. Wenn ich versuche, den XML-String mit XMLDocument in ein xmldoc.LoadXml(xmlStr) -Objekt zu laden, bekomme ich die folgende Ausnahme:

%Vor%

Im Debug-Modus kann ich den Schurken-Charakter sehen (Entschuldigung, ich bin mir nicht sicher, ob es der offizielle Titel ist?):

Meine Fragen lauten: Wie kann ich die XML-Zeichenfolge bereinigen, bevor ich sie in das XMLDocument-Objekt laden möchte? Benötige ich eine benutzerdefinierte Funktion, um all diese Zeichen nacheinander zu analysieren, oder kann ich eine native .NET4-Klasse verwenden, um sie zu entfernen?

    
QFDev 16.10.2013, 08:58
quelle

2 Antworten

23
___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ antwort19399128 ___

Hier haben Sie ein Beispiel, um xml ungültige Zeichen mit Regex :

zu bereinigen %Vor%     
___ qstnhdr ___ Entfernen Sie alle Hexadezimalzeichen vor dem Laden der Zeichenfolge in das XML-Dokumentobjekt? ___ tag123xml ___ Die XML-Datei (Extensible Markup Language) ist ein flexibles, strukturiertes Dokumentformat, das Codierungsregeln für Menschen und Maschinen definiert. ___ tag123net ___ Das .NET-Framework ist ein Software-Framework, das hauptsächlich für das Microsoft Windows-Betriebssystem entwickelt wurde. Es enthält eine Implementierung der Basisklassenbibliothek, Common Language Runtime (allgemein als CLR bezeichnet), Common Type System (allgemein als CTS bezeichnet) und Dynamic Language Runtime. Es unterstützt viele Programmiersprachen, einschließlich C #, VB.NET, F # und C ++ / CLI. NICHT für Fragen zu .NET Core verwenden. ___ tag123characterencoding ___ Zeichencodierung bezieht sich auf die Art und Weise, wie Zeichen als eine Reihe von Bytes dargestellt werden. Die Zeichenkodierung für das Web ist im Encoding Standard unter https://encoding.spec.whatwg.org/ definiert. ___ answer31342681 ___

Ein effizienterer Weg, um ungültige XML-Zeichen nicht zu verfälschen, wäre das CheckCharacters-Flag in XmlReaderSettings.

%Vor%     
___ qstntxt ___

Ich habe eine XML-Zeichenkette, die auf dem Server in einen Ashx-Handler gepostet wird. Die XML-Zeichenfolge wird auf der Clientseite erstellt und basiert auf ein paar verschiedenen Eingaben in einem Formular. Gelegentlich werden einige Benutzer kopieren und aus anderen Quellen in das Webformular einfügen. Wenn ich versuche, den XML-String mit %code% in ein %code% -Objekt zu laden, bekomme ich die folgende Ausnahme:

%Vor%

Im Debug-Modus kann ich den Schurken-Charakter sehen (Entschuldigung, ich bin mir nicht sicher, ob es der offizielle Titel ist?):

Meine Fragen lauten: Wie kann ich die XML-Zeichenfolge bereinigen, bevor ich sie in das XMLDocument-Objekt laden möchte? Benötige ich eine benutzerdefinierte Funktion, um all diese Zeichen nacheinander zu analysieren, oder kann ich eine native .NET4-Klasse verwenden, um sie zu entfernen?

    
___
Carlos Landeras 16.10.2013, 09:00
quelle
2

Ein effizienterer Weg, um ungültige XML-Zeichen nicht zu verfälschen, wäre das CheckCharacters-Flag in XmlReaderSettings.

%Vor%     
Charlie 10.07.2015 13:58
quelle

Tags und Links