Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
[c#] Codifica XmlDocument
martedì 16 giugno 2009 - 22.03
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Samb1985
Profilo
| Junior Member
180
messaggi | Data Invio:
mar 16 giu 2009 - 22:03
Come si fa ad assegnare ad un file in formato xml (senza la riga iniziale che specifica la versione/codifica ma solo i tag tipici di un file xml) una versione/codifica che permetta di specificare all'interno dei tag dell' XmlDocument qualsiasi tipo di carattere ?
Ora assegnando il file all' XmlDocument se contiene caratteri speciali come "&" o "°" viene lanciata la XmlException, probabilmente viene assegnata una codifica di default. (Con caratteri "normali" funziona bene)
Ho provato con il seguente codice ma ancora non funziona:
Encoding enc = Encoding.ASCII;
FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.None);
StreamReader sr = new StreamReader(fs,enc);
string response = sr.ReadToEnd();
XmlDocument xml = new XmlDocument();
xml.LoadXml(response);
fs.Close();
sr.Close();
L'eccezione è sempre Xml.XmlException Errore durante l'analisi di EntityName.
aiedail92
Profilo
| Expert
993
messaggi | Data Invio:
mer 17 giu 2009 - 12:13
Ciao
>Ora assegnando il file all' XmlDocument se contiene caratteri
>speciali come "&" o "°" viene lanciata la XmlException, probabilmente
>viene assegnata una codifica di default. (Con caratteri "normali"
>funziona bene)
Per quanto riguarda il carattere '&' non è questione di codifica: è un carattere speciale dell'xml e pertanto non puoi usarlo nel nome di un elemento:
http://en.wikipedia.org/wiki/Xml#International_use
Forse invece per poter usare il '°' devi specificare nell'xml una codifica adatta, ma non saprei dire con esattezza se e quale...
Luca
Samb1985
Profilo
| Junior Member
180
messaggi | Data Invio:
mer 17 giu 2009 - 13:13
& non la uso come nome di un elemento ma sta nel contenuto (Es. <tag>abc & avc n°</tag>)
Per il momento forse sono riuscito a risolvere:
Encoding enc = Encoding.UTF8;
FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.None);
StreamReader sr = new StreamReader(fs,enc);
string response = sr.ReadToEnd();
response = response.Replace("&", "&");
XmlDocument xml = new XmlDocument();
xml.LoadXml(response);
fs.Close();
sr.Close();
Spero che tutti gli altri caratteri, escluso &, siano consentiti in un file xml.
aiedail92
Profilo
| Expert
993
messaggi | Data Invio:
mer 17 giu 2009 - 20:11
Oltre all'&, anche altri caratteri sono riservati, ad esempio maggiore ('>', da sostituire con ">") e minore ('<', da sostituire con "<")...
Luca
Samb1985
Profilo
| Junior Member
180
messaggi | Data Invio:
mer 17 giu 2009 - 21:02
c'è un link dove vedere tutti gli altri caratteri riservati ?
< e > non posso fare il replace altrimenti mi sostituisce anche quelli relativi ad apertura e chiusura tag.
aiedail92
Profilo
| Expert
993
messaggi | Data Invio:
mer 17 giu 2009 - 21:49
Dunque, una rapida ricerca su google porta questi risultati:
http://xml.silmaril.ie/authors/specials/
http://www.devx.com/tips/Tip/14068
Luca
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !