2010-02-01 10 views
5

Il codice "&" nel testo viene sfuggito e viene convertito in & durante la creazione del file xml utilizzando XmlTextWriter ma non desidero che la conversione abbia luogo come impedirlo?Come impedire la conversione di & su & usando XmlTextWriter?

C'è qualche altro modo oltre all'utilizzo di WriteRaw func di xmltextwriter?

+3

Cosa c'è di sbagliato nell'usare 'WriteRaw' e perché non vuoi che sia sfuggito? –

+0

beh io voglio solo estrarre i dati grezzi e rappresentarli come xml.Probabilmente non usarlo legge il xml – kurozakura

risposta

9

Se si inserisce una e commerciale senza caratteri di escape in XML, non è più un XML valido.

I suoi due scelte sono o fuggire esso (che la libreria sta facendo):

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

O avvolgerlo in CDATA:

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

che può essere fatto da:

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

concordo. Avere un carattere '&' senza escape in XML è un errore di sintassi e, in base alle specifiche di http://www.w3.org/TR/xml/ ** deve ** essere rifiutato da un parser XML. – lavinio

+0

Hai ragione, lo voglio solo in un formato xml questo è tutto, non lo leggerò – kurozakura

0

Perché non vuoi che questo accada? Mi sembra che la libreria stia forzando l'escape corretto dei caratteri come richiesto da XML.

+2

alcune persone semplicemente ne hanno bisogno, non rispondere a una domanda con un'altra domanda, digli come o non dire nulla – Chris

+2

Lol @Chris. A volte impari molto di più quando il tuo la domanda viene risolta con una domanda, a meno che non siate pigri ... –

+4

@Rob Forse, ma una domanda non è ancora una * risposta *, e sta solo intralciando le risposte effettive (specialmente se per qualche motivo è in corso -voted) - questo dovrebbe essere un commento. – Justin

0

Non sono sicuro se funzionerà, ma potresti voler controllare le proprietà XmlWriterSettings disponibili tramite xmltextwriter.Sett ing, in particolare la proprietà CheckCharacters.

D'altra parte, come detto Brian Agnew, non codifica il & per & potrebbe essere il modo sbagliato di procedere in quanto renderà nulla la XML (a meno che già codificato a & nel qual caso si potrebbe semplicemente voler decodificare prima di darlo alla classe xmltextwriter

Problemi correlati