2010-02-01 8 views
5

El '&' en el texto se escapó y se convierte a & al crear el archivo xml usando XmlTextWriter pero no quiero que la conversión tenga lugar cómo evitarlo?Cómo evitar la conversión de & a & usando XmlTextWriter?

¿Hay alguna otra manera además de usar WriteRaw func of xmltextwriter?

+3

¿Qué hay de malo con el uso de 'WriteRaw' y por qué no quiere que se escape? –

+0

Bueno, yo solo quiero extraer los datos sin procesar y representarlos como xml.Probablemente no usarlo léase xml ya que arrojaría un error. – kurozakura

Respuesta

9

Si coloca un símbolo comercial sin esculturas en XML ya no es válido XML.

Sus dos opciones son o bien escapar de ella (que la biblioteca está haciendo):

<tag>One &amp; another</tag> 

o envuélvalo en CDATA:

<tag><![CDATA[One & another]]></tag> 

que se puede hacer por:

xmlWriter.WriteCData("One & another"); 
+0

Estoy de acuerdo. Tener un carácter '&' sin asignar en XML es un error de sintaxis, y de acuerdo con la especificación en http://www.w3.org/TR/xml/ ** debe ** ser rechazado por un analizador XML. – lavinio

+0

Tienes razón, solo lo quiero en formato xml, eso es todo, no voy a leerlo – kurozakura

0

¿Por qué no quieres que esto suceda? Me parece que la biblioteca está imponiendo el escape de caracteres correctos como exige XML.

+2

algunas personas simplemente lo necesitan. no responda una pregunta con otra pregunta. dígale cómo, o no diga nada en absoluto. – Chris

+2

Lol @Chris. A veces se aprende mucho más cuando su la pregunta se contesta con una pregunta, a menos que sea perezoso ... –

+4

@Rob Quizás, pero una pregunta todavía no es una * respuesta *, y está interponiéndose en el camino de las respuestas reales (especialmente porque por algún motivo está en aumento -votado) - esto debería haber sido un comentario. – Justin

0

No estoy seguro de si funcionará, pero es posible que desee comprobar en las propiedades XmlWriterSettings disponibles a través de xmltextwriter.Sett ings, especialmente la propiedad CheckCharacters.

Por otra parte, como se mencionó Brian Agnew, no codifica la & a & podría ser el camino equivocado, ya que invalidará el código XML (a menos que ya lo codificó a & en cuyo caso es posible que quieran para decodificar antes de dárselo a la clase xmltextwriter

Cuestiones relacionadas