Estoy tratando de usar el XmlReader de C# en una gran serie de archivos XML, todos tienen el formato correcto excepto unos pocos (lamentablemente no estoy en posición de cambiarlos) , porque rompería muchos otros códigos).usando el XmlReader de C# en XML ligeramente deformado
Los errores solo provienen de una parte específica de estos archivos XML en desacuerdo y está bien omitirlos pero no quiero dejar de leer el resto del archivo XML.
Las partes malas aspecto:
<InterestingStuff>
...
<ErrorsHere OptionA|Something = "false" OptionB|SomethingElse = "false"/>
<OtherInterestingStuff>
...
</OtherInterestingStuff>
</InterestingStuff>
Así que en realidad si tan sólo pudiera ignorar las etiquetas no válidas, o ignorar el símbolo de canalización entonces estaría bien.
Intentar usar XmlReader.Skip() cuando veo que el nombre "ErrorsHere" no funciona, aparentemente ya se lee un poco adelante y arroja la excepción.
TLDR: ¿Cómo puedo omitir para poder leer en el archivo XML anterior, utilizando el XmlReader?
Editar:
algunas personas sugirieron sólo la sustitución de la '|' -Símbolo, pero la idea de XmlReader es no cargar todo el archivo, pero sólo algunas partes de la poligonal que desee, ya que estoy leyendo directamente de los archivos que no puede pagar la lectura en archivos completos, reemplace todas las instancias de '|' y luego lee partes de nuevo :).
reemplazando | firmar antes de cargar un lector con - podría resolver el problema –
¿Cómo está leyendo la información en XmlReader? ¿Estás leyendo de la corriente? – Jethro
si conoce el error por adelantado, ¿no puede parchear el contenido de la fuente antes de analizarlo? Pero de una manera general, debe corregir el código fuente xml .... o no lo llame XML (me imagino que usted es dependiente de otra persona ...?) –