Wie zu stoppen XMLReader werfen Ungültige XML-Zeichen, Ausnahme
So, ich habe einige XML:
<key>my tag</key><value>my tag value and my invalid Character</Value>
und XMLReader:
using (XmlReader reader = XmlReader.Create(new StringReader(xml)))
{
while (reader.Read())
{
//do my thing
}
}
Implementierte ich die CleanInvalidCharacters Methode von hier aber als "" ist noch nicht kodiert es nicht entfernt bekommen.
Wird der Fehler geworfen wird, an den Leser.Lesen(); line mit der Ausnahme:
hexadezimalen Wert 0x0B, ist ein ungültiges Zeichen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, dass Sie nicht über XML -- Sie haben einen string, der sieht sicher aus wie XML, aber leider nicht wirklich qualifiziert. Glücklicherweise kann man sagen
XmlReader
zu mehr Nachsicht:Beachten Sie, dass Sie noch am Ende mit XML, dass, wenn Sie serialisiert, könnte Probleme weiter unten in der Zeile, so können Sie filtern möchten die Charaktere dann sowieso wie Sie Lesen.
CleanInvalidCharacters
Ansatz erwähnt in Ihrem ursprünglichen Beitrag auf den text-Knoten, element-und Attribut-Werte (wie Sie Ihnen begegnen können in der while-Schleife, in der Tat). Es funktioniert jetzt, da die Zeichen wurden bereits entschlüsselt.