Autore Topic: XMLLib & INILib  (Letto 1218 volte)

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
XMLLib & INILib
« il: 17 Agosto 2010, 15:45:05 »
Diciamo che in questi ultimi mi sono un pò perso, ma tanto il buon "cesko" mi indirizzerà per la giusta strada... (attento però...  :evil: )

Comunque, per il momento ne parlo qui...

Con pgDesigner (ma sempre di stò programma parli???) avevo, e stò ancora implementando, creato una serie di librerie utili, che mi sono deciso di estrapolare e creare una serie di pacchetti distinti, in modo da renderli disponibili a tutti.

In questo frangente, ho dato un ripulita ad un paio di blocchi (ho tolto alcuni agganci ad altre librerie dell'applicazione), rendendoli più generalizzati:

XMLLib: una gestione di file xml che si basa sulle classi XMLReader/XMLWriter per scrivere, ma gestisce completamente e in modo, a mio avviso, più semplice le informazioni e i dati componenti una struttura XML, con la possibilità di leggere/scrivere file di tale formato, e ovviando ad alcuni problemi da me riscontrati nelle due classi Gambas (pure segnalati).

INILib: classe simile alla precedente, ma che sostituisce l'oggetto Setting di Gambas, eliminando anche con questa alcuni problemi riscontrati anche con questa libreria.

I due pacchetti sono composti ciascuno di tre classi: Document, Element e Attribute.
Per rendere le due librerie molto simili, ho cercato di gestire le cose con le stesse identiche nomenclature, come pure i parametri, in mod che possano essere facilmente essere rese intercambiabili (o quasi). Dato che alla fine le due librerie svolgono più o meno le stesse cose, mi è anche parso più che giusto farlo.

Descrizione:

Document: questa è la classe base del pacchetto, e tutto parte da questo oggetto, comprese la lettura e la creazione da/verso il file di destinazione. Fondamentalmente questa crea uan struttura dati di base, vuota, sui aggiungere di volta in volta i vari Elementi.

Element: sia per i file xml che per la struttura tipo file INI windoz, esiste il concetto di elemento, o gruppo, su cui vengono associati vari attributi. Nel caso di un file INI, la struttura può contenere solo due livelli, ovvero un gruppo a cui sono collegati un certo numero di attributi figli, come ad esempio:
Codice: [Seleziona]
...
[gruppo]
attributo=valore
...
questo, ovviamente all'infinito, ma solo e sempre con una struttura bilivello. Nel caso dell'XML, la cosa può assumere profondità più accentuate, oltre al fatto che ad un elemento possono essere associati, oltre ad attributi, anche ulteriori sottoelementi, con ulteriori sottoattributi, e così via, fino a raggiungere complessità maggiori.
Codice: [Seleziona]
<root>
  <elemento1 attributo1="">
    ...
    <elemento2>valore</elemento2>
    ...
  </elemento1>
  ...
</root>

Attribute: come nell'esempio precedente, questo è l'oggetto che rappresenta un singolo attributo di un preciso elemento della struttura. Nei file INI rappresenta una determinata proprietà di un determinato gruppo; in XML... bè, l'esempio credo dimostri la cosa...

Per il momento le due librerie le appoggio in questo thread. Poi si deciderà se metterle in posti più idonei.

Bye

Offline pirandello

  • Gamberetto
  • *
  • Post: 35
    • Mostra profilo
Re: XMLLib & INILib
« Risposta #1 il: 05 Febbraio 2011, 14:34:30 »
Scusami ma sono giorni che mi scervello a leggere e rileggere il codice della libreria XMLLIB per cercare di capire il funzionamento ma non nascondo le mie difficoltà a venire a capo di un problema che sicuramente tu mi potresti spiegare.
Io ho un file in xml del quale io devo copiare solo una parte degli attributi (quindi non tutto il documento) e con quella porzione di file copiato dovrei generarne un altro documento in xml: come posso fare?
Grazie.
« Ultima modifica: 05 Febbraio 2011, 14:47:03 da pirandello »