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

Get Next Node

funzione copia link

Scopo

Ritorna il primo nodo di primo livello non ancora visitato del documento. Se non ci sono nodi di primo livello, oppure se sono già stati visitati tutti, questa funzione ritorna Null Object. Normalmente questa funzione viene utilizzata all'interno di un ciclo While per scandire l'elenco dei nodi di primo livello dell'albero.

Sintassi

XMLNode XMLNode = null          // Leggo il prossimo figlio del documento
// 
XMLNode := XMLDocument.GetNextNode()

Argomenti

Questa funzione non ha argomenti.

Valore di ritorno

Ritorna il primo nodo di primo livello non ancora visitato del documento. Se non ci sono nodi di primo livello, oppure se sono già stati visitati tutti, questa funzione ritorna Null Object.

Esempio di codice

// ***********************************************
// Importa un documento XML dal file "filexml.xml"
// ***********************************************

public void XMLDocument.ImportaFile()
{
  string filename = "" // 
  // 
  XMLString.Log := Empty String
  // 
  filename := Path() +c C\ +c filexml.xml
  if NullValue(filename, Empty String) <> Empty String
  {
    XMLDocument XMLDoc = new()  // 
    XMLNode XMLNodo = null      // 
    MyXMLItem MyOggetto = new() // 
    // 
    // Leggo il documento XML

    XMLDoc.Load(filename)
    if XMLDoc.HasNextNode()
    {
      // Recupero il nodo radice del documento XML
      XMLNodo := XMLDoc.GetNextNode()
      // 
      this.ScriviDebugStruttura(XMLNodo)
      // 
      MyOggetto.Nome := XMLNodo.GetAttribute(Nome)
      MyOggetto.Descrizione := XMLNodo.GetAttribute(Descrizione)
      // 
      // Prendo gli eventuali oggetti figli

      if XMLNodo.HasNextNode()
      {
         this.Importa0(XMLNodo, MyOggetto, ShiftKey)
      }
      MyOggetto.SetOriginal()
    }
    // 
    // Imposto Activate On Expand

    AlberoOggetti.ActivateOnExpand := True
    // 
    // Metto l'oggetto nell'albero

    AlberoOggetti.SetDocument(MyOggetto)
    // 
    // Eseguo Update Controls per poter attivare l'oggetto già in questa procedura, poi lo espando

    this.UpdateControls()
    AlberoOggetti.ActiveDocument := MyOggetto
    this.Root := MyOggetto
    AlberoOggetti.ExpandDoc(this.Root, True)
  }
}
  • La funzione ritorna il prossimo nodo navigando solamente tra i nodi di primo livello del documento.


  • Un documento XML dovrebbe avere solamente un figlio di primo livello (root object) per essere "well formed".

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

Vedi Anche

  • XML Node

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum