J’ai donc du XML:
my tagmy tag value and my invalid Character
et un XMLReader:
using (XmlReader reader = XmlReader.Create(new SsortingngReader(xml))) { while (reader.Read()) { //do my thing } }
J’ai implémenté la méthode CleanInvalidCharacters à partir d’ ici, mais comme “& # xB” n’est pas encore encodé, il n’est pas supprimé.
L’erreur est lancée sur le lecteur.Read (); ligne avec exception:
valeur hexadécimale 0x0B, est un caractère non valide.
Le problème est que vous n’avez pas de XML – vous avez une chaîne qui ressemble certainement à XML mais qui, malheureusement, ne se qualifie pas vraiment. Heureusement, vous pouvez dire à XmlReader
d’être plus indulgent:
using (XmlReader reader = XmlReader.Create(new SsortingngReader(xml), new XmlReaderSettings { CheckCharacters = false })) { while (reader.Read()) { //do my thing } }
Notez que vous finirez toujours par avoir du XML qui, une fois sérialisé, risque de poser des problèmes plus loin dans la ligne. Vous souhaiterez donc peut-être filtrer les caractères par la suite lorsque vous le lirez.