Value

proprietà copia link

Scopo

Questa proprietà rappresenta il valore del tag, cioè il testo contenuto tra il tag di apertura e il tag di chiusura del nodo XML. Questa Proprietà può essere utile se i valori degli attributi degli oggetti descritti nel file XML sono memorizzati come nodi di tipo testo invece che come attributi dei nodi di tipo element. Ad esempio se il file XML contiene <Fattura><ID>001</ID></Fattura>, allora la proprietà sul nodo ID contiene 001.

Sintassi

string valore = "" // Leggo il valore del tag
// 
valore := XMLNode.Value()

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            // 
    string s = ""                  // 
    // 
    Nodo := Sorgente.GetNextNode()
    // 
    // Scrivo nel debug da descrizione del codice XML che sto leggendo

    EsempiGL.DTTLogMessage(Nodo.ToString(), ??, ??)
    // 
    // Scrivo nel debug il testo contenuto nel nodo XML

    EsempiGL.DTTLogMessage(Nodo.SaveToString(), ??, ??)
    // 
    // 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
    {
      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()
      ...
    // 
    // Se devo causo volontariamente un loop

    if loop
    {
      Sorgente.Reset()
    }
  }
  Padre.Loaded := True
  Padre.ItemsFigli.Loaded := True
}
  • Se il nodo XML non contiene testo la proprietà vale stringa vuota.
  • Questa proprietà vale stringa vuota per tipi di nodi che per loro natura non contengono un valore testuale. Ad esempio un nodo di tipo Element non contiene alcun valore, mentre un nodo di tipo Text contiene un valore stringa che può essere recuperato utilizzando questa proprietà.
  • A partire dalla versione 13.0.5600 di Instant Developer se si legge il valore della proprietà Value di un nodo di tipo Element che contiene uno ed un solo nodo di tipo Text restituisce il valore del nodo Text. In questo modo è più semplice leggere il valore dei nodi come questo:
       <Nodo>
          TextValue
       </Nodo>
    senza dover scrivere:
      if (node.hasNextNode())
      {
        XMLNode val = node.GetNextNode()
        String text = val.Value
      }

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