Italian Parse di un file XML

AlpVir

Well-Known Member
Licensed User
Longtime User
Le seguenti istruzioni effettuano correttamente il parser di un file XML, utilizzando la libreria XmlSax

B4X:
in = File.OpenInput(File.DirRootExternal, Main.FileXML)
parserOre.Parse(in, "ParserOre") 
in.Close

L'inizio del file XML è il seguente :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TABLE nom="Attività">
<Attivita numero="1">
<Numero>1</Numero>
<DURATA>1h00</DURATA>
<FREQUENZA>S</FREQUENZA>
<MAT_COD>MATE</MAT_COD>
<MAT_NOME>MATEMATICA</MAT_NOME>
<DOC_COGN>residue</DOC_COGN>
<DOC_NOME>MATE</DOC_NOME>
<CLASSE>1B TD02</CLASSE>
<AULA/>
<PERIODICITA>S</PERIODICITA>
<SPECIFICA>ss</SPECIFICA>
<CO-DOC.>N</CO-DOC.>
<COEFF.>60/60</COEFF.>
<GIORNO>lunedì</GIORNO>
<O.INIZIO>08h00</O.INIZIO>
<SEDE/>
<ALUNNI>0</ALUNNI>
<Attivita numero="2">
<Numero>2</Numero>
<DURATA>1h00</DURATA>
<FREQUENZA>S</FREQUENZA>
</Attivita>

Viceversa se sottopongo allo stesso codice un altro file XML, il seguente :
<?xml version='1.0' encoding='us-ascii' ?>
<TIMETABLE>
<LESSON>
<DURATION value="6:00"/>
<SUBJECT value="LAB. CUC."/>
<SITE value="SAN PAOLO"/>
<MODULE value="MAIORANA CASAMASSIMA"/>
<TEACHER value="Corriero Antonio"/>
<GROUP value="3AEsp"/>
<ROOM value="LAB CUCINA A"/>
<DAY value="LUN"/>
<TIME value="8:15"/>
</LESSON>
<LESSON>
<DURATION value="2:00"/>
<SUBJECT value="MATEMATICA"/>
<SITE value="SAN PAOLO"/>
<MODULE value="MAJORANA SAN PAOLO"/>
<TEACHER value="Milella Sabina"/>
<GROUP value="ot5Asp"/>
<DAY value="LUN"/>
<TIME value="8:15"/>
</LESSON>
<LESSON>
<DURATION value="1:00"/>

ovviamente adattando i codice (ad esempio sostituendo TEACHER con DOC_COGN) ricevo un errore in una linea in cui c'è un docente con una lettera accentata (<TEACHER value="Imbò S******"/>). Guarda caso.
Ritenendo che ciò fosse dovuto ad un errato encoding ho adattato il codice nel seguente modo
B4X:
Dim Inp8 As InputStream
Inp8 = File.OpenInput(File.DirRootExternal, Main.FileXML)
Dim tr As TextReader
'tr.Initialize2(Inp8, "iso-8859-1")
tr.Initialize2(Inp8, "US-ASCII")
parserOre.Parse2(tr, "ParserOre")
tr.Close
Come riuscire a leggere correttamente questo tipo di file XML ?
Grazie per l'attenzione
 
Top