Scopo
Ritorna il valore di un attributo del nodo corrente cercandolo per nome. Se ad esempio il file XML contiene il nodo <Fattura ID="001">...</Fattura>, allora chiamando la funzione GetAttribute("ID") sul nodo Fattura si ottiene 001.
Sintassi
string valore := XMLNode.GetAttribute(nome attributo, Namespace)
Argomenti
| Nome Attributo | È una stringa rappresentante il nome dell'attributo dell'oggetto XMLNode di cui si vuole ottenere il valore. |
| Namespace | E' una stringa opzionale che rappresenta il namespace del nodo XML di cui si vuole ottenere il valore (parametro introdotto nella versione 19.5). |
Valore di ritorno
Ritorna una stringa contenente il valore dell'attributo dell'oggetto XMLNode.
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
}
- Se l'oggetto XMLNode non possiede un attributo con il nome indicato viene ritornata una stringa vuota.
- Se si specifica il Namespace nel Nome va omesso il prefisso.
Ultima modifica: 24/03/2021 / Validità: da 6.5.2680
funzione