deserialize - xmldocument c# ejemplo




Lectura de XML con un "&" en C#XMLDocument Object (4)

Hay varios caracteres que harán que los datos XML se notifiquen como mal formados.

Desde w3schools :

Los caracteres como "<" y "&" son ilegales en elementos XML.

La mejor solución para la entrada en la que no puede confiar es que sea compatible con XML, es envolverla en etiquetas CDATA, por ejemplo

<![CDATA[This is my wonderful & great user text]]>

Todo en las etiquetas <![CDATA[ and ]]> es ignorado por el analizador.

He heredado una aplicación web mal escrita que parece tener errores cuando intenta leer en un documento xml almacenado en la base de datos que tiene una "y" en él. Por ejemplo, habrá una etiqueta con los contenidos: "Prepago y cargo". ¿Hay alguna cosa secreta simple que hacer para que no obtenga un error de análisis de ese personaje, o me estoy perdiendo algo obvio?

EDITAR: ¿Hay otros caracteres que causen este mismo tipo de error de analizador por no estar bien formado?


La aplicación web no tiene la culpa, el documento XML sí lo está. Los símbolos en XML deben codificarse como &amp; . No hacerlo es un error de sintaxis.

Editar: en respuesta a la pregunta de seguimiento, sí, hay todo tipo de errores similares. Por ejemplo, etiquetas desequilibradas, signos de menos de codificación no codificada, valores de atributo sin comillas, octetos fuera de la codificación de caracteres y varias rarezas de Unicode, referencias de entidades no reconocidas, etc. Para que cualquier analizador XML decente consuma un documento, ese documento debe estar bien formado. La especificación XML requiere que un analizador que encuentre un documento mal formado arroje un error fatal.


Puedes reemplazar & con &amp;

O quizás también puedas usar secciones de CDATA .


Su base de datos no contiene documentos XML. Contiene algunos documentos XML bien formados y algunas cadenas que se parecen a XML para un ser humano.

Si es posible, debe solucionarlo; en particular, debe corregir cualquier proceso que esté generando documentos XML mal formados. Reparar el programa que lee datos de esta base de datos es simplemente colocar el fondo de pantalla sobre una grieta en la pared.





xmldocument