Scopo
Ritorna un oggetto XMLNode che rappresenta il primo nodo figlio non ancora visitato del nodo corrente. Ritorna Null Object se non ci sono nodi figli ancora da visitare. Di solito questa funzione viene usata all'intero di un ciclo While per scandire i nodi figli del nodo corrente.
Sintassi
XMLNode ProssimoNodo = null // Leggo il prossimo nodo
//
ProssimoNodo := XMLNode.GetNextNode()
//
ProssimoNodo := XMLNode.GetNextNode()
Argomenti
Questa funzione non ha argomenti.Valore di ritorno
Viene ritornato un oggetto XMLNode contenente il prossimo nodo figlio non ancora visitato.
Esempio di codice
// *********************************************************
// Explain which processing is carried out by this procedure
// *********************************************************
public void XMLDocument.Importa0(
XMLNode Sorgente // Nodo XML da cui leggere
MyXMLItem Padre // INDE Item in cui inserire i figli
)
{
// Finché trovo degli oggetti contenuti nella sorgente aggiungo figli
// all'oggetto padre
while Sorgente.HasNextNode()
{
MyXMLItem NuovoOggetto = new() //
XMLNode Nodo = null //
//
Nodo := Sorgente.GetNextNode()
//
// Scrivo nel debug il codice XML che sto leggendo
EsempiGL.DTTLogMessage(Nodo.ToString(), ??, ??)
//
// Se sto leggendo un oggetto di tipo item
if Nodo.Name() = item AND Nodo.IsElement()
{
NuovoOggetto.Nome := Nodo.GetAttribute(Nome)
NuovoOggetto.Descrizione := Nodo.GetAttribute(Descrizione)
Padre.ItemsFigli.Add(NuovoOggetto)
}
//
// Se è un nodo di tipo commento lo scrivo nel debug
if Nodo.Type() = XML Comment Type
{
EsempiGL.DTTLogMessage(Nodo.Value(), ??, ??)
}
//
// Se il sorgente è di tipo text scrivo nel debug il testo contenuto
if Nodo.IsText()
{
EsempiGL.DTTLogMessage(Nodo.Value(), ??, ??)
}
//
if Nodo.HasNextNode()
{
this.Importa0(Nodo, NuovoOggetto)
}
}
Padre.Loaded := True
Padre.ItemsFigli.Loaded := True
}
// Explain which processing is carried out by this procedure
// *********************************************************
public void XMLDocument.Importa0(
XMLNode Sorgente // Nodo XML da cui leggere
MyXMLItem Padre // INDE Item in cui inserire i figli
)
{
// Finché trovo degli oggetti contenuti nella sorgente aggiungo figli
// all'oggetto padre
while Sorgente.HasNextNode()
{
MyXMLItem NuovoOggetto = new() //
XMLNode Nodo = null //
//
Nodo := Sorgente.GetNextNode()
//
// Scrivo nel debug il codice XML che sto leggendo
EsempiGL.DTTLogMessage(Nodo.ToString(), ??, ??)
//
// Se sto leggendo un oggetto di tipo item
if Nodo.Name() = item AND Nodo.IsElement()
{
NuovoOggetto.Nome := Nodo.GetAttribute(Nome)
NuovoOggetto.Descrizione := Nodo.GetAttribute(Descrizione)
Padre.ItemsFigli.Add(NuovoOggetto)
}
//
// Se è un nodo di tipo commento lo scrivo nel debug
if Nodo.Type() = XML Comment Type
{
EsempiGL.DTTLogMessage(Nodo.Value(), ??, ??)
}
//
// Se il sorgente è di tipo text scrivo nel debug il testo contenuto
if Nodo.IsText()
{
EsempiGL.DTTLogMessage(Nodo.Value(), ??, ??)
}
//
if Nodo.HasNextNode()
{
this.Importa0(Nodo, NuovoOggetto)
}
}
Padre.Loaded := True
Padre.ItemsFigli.Loaded := True
}
- La funzione ritorna il prossimo nodo non visitato dell'oggetto XMLNode, cercandolo solo tra i figli di primo livello.
Ultima modifica: 23/03/2021 / Validità: da 6.5.2680