Interagire con un file XML è molto simile all'interazione con i database, ci si connette ad un dato sotto forma di XML. A quel punto il file (o il dato) XML è caricato in memoria, e anche se lo modifichiamo, finchè non lo scarichiamo da qualche parte, non verranno salvate le modifiche da nessuna parte.
Prima di tutto vediamo come caricare un file XML, se abbiamo un file il codice è il seguente:
on mouseUp answer file "FIle XML da caricare:" put "file:" & it into tXMLData put revXMLCreateTreeFromFile(tXMLData, true, true, true) into sXMLID set the conID of this card to sXMLID #così recuperiamo il datoend mouseUpSe invece avete i dati da qualche altra parte, basta:
on mouseUp put revXMLCreateTree(tXMLData, true, true, true) into sXMLID set the conID of this card to sXMLID #così recuperiamo il datoend mouseUpAdesso ipotizziamo che il dato XML sia:
<amici></amici>
Perchè vogliamo fare una rubrica con i nostri amici, allora dobbiamo inserire un identificativo unico per ognuno di essi, quindi il codice da usare è:
put the conID of this card into tID revXMLAddNode tID, "amici", "ID","1" revXMLAddNode tID, "amici", "ID","2"
Quando si aggiunge un nodo, bisogna sempre tutto l'albero fino a dove vogliamo inserirlo. Abbiamo aggiunto due nodi ID e abbiamo aggiunto il valore 1 e 2 in essi, quindi il nostro dato XML è:
<?xml version="1.0"?>
<amici>
<ID>1</ID>
<ID>2</ID>
</amici>
La prima riga è stata aggiunta da Livecode per specificare il formato XML utilizzato. Bene ora dobbiamo inserire i nomi, i valori del tag si specificano con le parentesi quadre:
on mouseUp put the conID of this card into tID revXMLAddNode tID, "amici/ID[1]", "Nome","Mario" revXMLAddNode tID, "amici/ID[2]", "Nome","Luigi"end mouseUpOra il nostro dato XML è:
<?xml version="1.0"?>
<amici>
<ID>1
<Nome>Mario</Nome>
</ID>
<ID>2
<Nome>Luigi</Nome>
</ID>
</amici>
Per aggiungere i cognomi, basta:
on mouseUp put the conID of this card into tID revXMLAddNode tID, "amici/ID[1]", "Cognome","Rossi" revXMLAddNode tID, "amici/ID[2]", "Cognome","Bianchi"end mouseUpe il nostro dato diviene:
<?xml version="1.0"?>
<amici>
<ID>1
<Nome>Mario</Nome>
<Cognome>Rossi</Cognome>
</ID>
<ID>2
<Nome>Luigi</Nome>
<Cognome>Bianchi</Cognome>
</ID>
</amici>
Per sapere il nome del primo contatto basta:
put revXMLNodeContents(tiD, "amici/id[1]/nome") Per eliminare un nodo basta:
on mouseUp put the conID of this card into tID revXMLDeleteNode tID,"amici/ID[1]"end mouseUpe il nostro dato sarà:
<?xml version="1.0"?>
<amici>
<ID>2
<Nome>Luigi</Nome>
<Cognome>Bianchi</Cognome>
</ID>
</amici>
Per avere tutto l'albero basta:
put revXMLtext(tID)In questo modo possiamo salvarlo dove ci pare.
Nessun commento:
Posta un commento