English
Instant Developer Foundation Documentazione
  • Reference Librerie
  • Librerie Componenti
  • XML Node
  • Gestione Nodi Figli

Has Next Node

funzione link

Scopo

Ritorna vero se l'oggetto XMLNode ha ancora nodi figli da non ancora visitati con la funzione GetNextNode. Di solito si usa nella condizione del ciclo While che scandisce i nodi figli del nodo corrente.

Sintassi

boolean NavigaAncora = False // Controllo se ci sono altri figli da navigare
// 
NavigaAncora := XMLNode.HasNextNode()

Argomenti

Questa funzione non ha argomenti.

Valore di ritorno

Ritorna True se l'oggetto XMLNode possiede ancora nodi figli da visitare, False altrimenti.

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
}
  • Internamente l'oggetto XMLNode mantiene l'indice dell'ultimo nodo visitato. E' possibile resettare questi indici, impostando l'oggetto come nuovamente da visitare, mediante l'utilizzo della procedura Reset.

Ultima modifica: 23/03/2021 / Validità: da 6.5.2680

Vedi Anche

  • XML Document
  • Reset (procedura)
  • Get Next Node (funzione)

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum