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 dato
end mouseUp
Se 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 dato
end mouseUp
Adesso 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 mouseUp
Ora 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 mouseUp
e 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 mouseUp
e 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