Reset

procedura copia link

Scopo

Resetta gli indici dei nodi figli e degli attributi, impostando l'oggetto XMLNode come se nessuno dei suoi figli o dei suoi attributi sia mai stato visitato.

Sintassi

XMLNode.Reset()

Argomenti

Questa procedura non ha argomenti.

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
  optional boolean loop = 0 // Vero per resettare ad ogni ciclo il nodo XM...
)
{
  // Se devo trovare un loop fermo il debug a 10 iterazioni
  if loop
  {
    EsempiGL.DTTMaxLoopCycles := C10
  }
  // 
  // 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()
      ...
    // 
    // Se è un nodo di tipo commento lo scrivo nel debug

    if Nodo.Type() = XML Comment Type
      ...
    // 
    // Se il sorgente è di tipo text scrivo nel debug il testo contenuto

    if Nodo.IsText()
      ...
    // 
    if Nodo.HasNextNode()
      ...
    // 
    // Se devo causo volontariamente un loop

    if loop
    {
      Sorgente.Reset()
    }
  }
  Padre.Loaded := True
  Padre.ItemsFigli.Loaded := True
}
  • L'utilizzo della procedura Reset può causare loop nell'esecuzione del codice. Se ad esempio si utilizza erroneamente all'interno del ciclo di lettura di un documento XML si può innescare un ciclo infinito.

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