Homepage Site Map


   
PROGRAMMAZIONE
   FARE WEB
   HTML
   CSS
   PHP
   MySQL
   XML - XSL
GRAFICA
   PAINT SHOP
   ANIMATION SHOP
   SWISH
   SWISHMAX
SCRIPT
   JAVASCRIPT
   PHP
   APPLET JAVA
   CSS GENERATOR
   WEB TOOLS
DOWNLOAD
   FONTS
   ICONE E AVATAR
   SMILES
   GIF ANIMATE
   CURSORI
   CALENDARI
   KAOANI
   BASI BANNER
   SCREENMATES
   MEEGOS
   GIOCHI
   VIDEO E PPS
ARTICOLI
   ARTICOLI
   GUADAGNA SITO
LINKS
   LINK TO ME
   VOTAMI
   SCAMBIO LINK
   SCAMBIO BANNER


zanox Partner promuovono Partner


 
  

Home -> Manuali e Tutorials -> Guida XML DOM -> Struttura  


Scarica il tutorial      |    Stampa il tutorial      |    Cerca nel sito      



STRUTTURA AD OGGETTI



La struttura dell'interfaccia DOM si basa su classi a più livelli tra cui quelli riportati in figura seguente:




La classe più importante è quella di nodo (Node), che comprende qualsiasi elemento dell'albero XML: radice, ramo, foglia. Allo stesso livello della classe Node, ma senza figli, troviamo le classi NodeList e NodeNamedMap. Si tratta di oggetti temporanei che vengono generati durante la lettura dell'albero XML, per memorizzare dei gruppi di fratelli (ad esempio tutti i figli o tutti gli attributi di un elemento).

Attributi della classe Node che danno informazioni sul nodo:

- nodeName: restituisce il nome del nodo, quello indicato fra i "tag": <nome>..</nome>. Se si tratta del documento stesso il nome sarà "#document", per un nodo di testo invece "#text".

- nodeType: DOM assegna un valore numerico ai diversi tipi di nodo esistenti. Per i nodi più importanti si hanno i seguenti numeri: elemento = 1, attributo = 2, testo = 3, documento = 9.

- nodeValue: restituisce il valore del nodo corrente. Serve soprattutto per i nodi di testo, per la maggiorparte degli altri darà risultato "null".


Attributi della classe Node per muoversi nell'albero XML.

Quando creiamo un oggetto XML possiamo usare una o più variabili come "cursori" per memorizzare posizioni nell'albero. Ogni spostamento da una posizione nota si può effettuare con uno degli attributi che seguono.

- ownerDocument: ci permette di saltare, ovunque ci troviamo, alla radice del nostro albero.

- parentNode: restituisce il nodo genitore dell'attuale.

- childNodes: restituisce i nodi figli del nodo attuale, racchiusi in un oggetto NodeList.

- firstChild, lastChild: restituiscono rispettivamente il primo e ultimo nodo figli dell'attuale.

- previousSibling, nextSibling: restituiscono rispettivamente il fratello precedente e seguente del nodo attuale. Precedente e seguente fanno riferimento all'ordine con cui i nodi si trovano nel testo del file XML.

- attributes: restituisce gli attributi del nodo corrente, racchiusi in un oggetto NodeNamedMap.


Metodi della classe Node, di cui la maggiorparte serve per creare nuovi nodi dell'albero XML:

- hasChildNodes(): restituisce un valore booleano (true o false) in risposta alla domanda se il nodo ha dei nodi figli (compresi i nodi di testo).




La sottoclasse di nodi chiamata "Document" indica proprio il documento XML e contiene un unico (obbligatoriamente unico) oggetto, la radice dell'albero. Vediamone attributi e metodi:

Metodi della classe Document, di cui la maggiorparte serve per creare nuovi nodi dell'albero XML:

- getElementsByTagName(tag): permette di cercare tutti gli elementi con un certo nome al di sotto della radice. Gli elementi vengono messi in un oggetto NodeList. Il carattere " * " funziona come jolly per individuare tutti gli elementi.




La sottoclasse di nodi "Element" è la più popolosa e contiene tutti i rami dell'albero XML, in pratica ogni elemento al di sotto della radice che sia stato dichiarato con una coppia di "tag": <elemento></elemento>.

Metodi della classe Element, di cui la maggiorparte di questi metodi serve per creare nuovi nodi dell'albero XML:

- getElementsByTagName(tag): equivalente all'omonimo per Document.

- getAttribute (attributo): restituisce il valore, per l'elemento attuale, dell'attributo indicato.

- getAttributeNode(attributo): restituisce l'attributo specificato come nodo.




La sottoclasse di nodi "Attribute" indica gli attributi degli elementi. Gli attributi ereditano solo una parte delle proprietà dei nodi, perché non possono essere innestati gli uni dentro agli altri. Non vale quindi per essi la maggiorparte dei metodi per muovere il cursore entro l'albero: nextSibling, previousSibling, firstChild etc... Per scorrere gli attributi occorre usare l'oggetto NamedNodeMap generato dal comando "attributes".

Vediamo alcune proprietà caratteristiche solo degli attributi:

- name: restituisce il nome dell'attributo.

- specified: restituisce un valore booleano (true o false) che indica se all'attributo è stato assegnato un valore.




La sottoclasse "CharacterData" è la "mamma" di testi e commenti del file XML. Nell'albero parserizzato il testo diventa un nodo di nome "#text". I metodi della classe servono per modificare il testo.

Attributi della classe CharacterData:

- data: restituisce il testo vero e proprio contenuto nel nodo #text.

- length: restituisce il numero di caratteri che formano il testo.




Vediamo ora le due classi "NodeList" e "NamedNodeMap". Quando l'esito di un metodo può essere composto di più parti, viene creato automaticamente un oggetto di una di queste due classi per contenere i risultati. Un oggetto Nodelist è un vettore di elementi con un indice numerico, NamedNodeMap possiede le stesse proprietà di Nodelist ed in più permette di individuare gli elementi con dei nomi oltre che con l'indice.

Attributi della classe NodeList:

- length: restituisce il numero di elementi del vettore.

Metodi della classe NodeList:

- item(n): restituisce l'elemento nella posizione n. L'elemento può essere un oggetto della classe Node, con le relative proprietà. L'indice progressivo delle posizioni del vettore non parte da 1, bensì da 0: 0,1,2... Perciò la lunghezza del vettore è uguale all'ultima posizione + 1.


La classe NamedNodeMap possiede le stesse proprietà di Nodelist più la seguente:

Metodi della classe NamedNodeMap:

- getNamedItem(nome): restituisce l'elemento che corrisponde al nome indicato.






Torna su      |    Indice Guida      |    Pagina << 2 >>    


Vai al W3C CSS Validator toolkit.
Realizzato con PHP. Vai al sito ufficiale del PHP.
Testato anche con Mozilla Firefox. Vai al sito ufficiale.

Home     Contacts     Forum     FAQ     Newsletter     Mappa     Cerca     Link to me

  Vedi gli RSS del sito.      

-->  [Il tuo link qui]