Forum und email

DOM Functions

Introduzione

L'estensione DOM è la sostituzione dell'estensione DOM XML del PHP 4. Questo modulo continua a contenere diverse vecchie funzioni, ma non dovrebbereo essere più utilizzate. In particolar modo si dovrebbe evitare le funzioni che non sono orientate agli oggetti.

L'estensione permette di lavorare su un documento XML con le API DOM.

Installazione

Non è necessaria nessuna installazione per usare queste funzioni, esse fanno parte del core di PHP.

Classi predefinite

Le APi del modulo seguono lo standard » DOM Level 2 il più fedelmente possibile. Di conseguenza la API sono completamente ad oggetti. E' consigliabile avere a portata di mano lo standard DOM quando si utilizza questo modulo.

Questo modulo definisce diverse classi, che sono illustrate nelle seguenti tabelle. Quelle con una corrispondente classe nello standard DOM sono chia,ate DOMxxx.

DOMAttr

Estende DOMNode. L'interfaccia DOMAttr rappresenta un attributo dell'oggetto DOMElement.

Costruttori

Metodi

Proprietà

Nome Tipo Sola lettura Descrizione
name string si Nome dell'attributo
ownerElement DOMElement Elemento che contiene l'attributo
schemaTypeInfo bool Non ancora impementato, ritorna sempre NULL
specified bool Non ancora impementato, ritorna sempre NULL
value string no Valore dell'attributo

DOMCharacterData

Espande DOMNode.

Metodi

Proprietà

Nome Tipo Sola lettura Descrizione
data string no Contenuto del nodo
length int Lunghezza del contenuto

DOMComment

Espande DOMCharacterData.

Costruttori

DOMDocument

Espande DOMNode.

Costruttori

Metodi

Proprietà

Nome Tipo Sola lettura Descrizione
actualEncoding string  
config DOMConfiguration  
doctype DOMDocumentType Dichiarazione del tipo documento associato al docuemnto.
documentElement DOMElement Attributo di convenienza per accedere direttamente al nodo figlio, che è l'elemento del documento.
documentURI string no Luogo del documento oppure NULL se indefinito.
encoding string no  
formatOutput bool no  
implementation DOMImplementation L'oggetto DOMImplementation che gestisce questo documento.
preserveWhiteSpace bool no Non rimuovere gli spazi ridondanti. Default TRUE.
recover bool no  
resolveExternals bool no Impostare a TRUE per caricare le entità esterne dalla dichiarazione doctype. Questo è utile per includere entità di caratteri nel documento XML.
standalone bool no  
strictErrorChecking bool no Genera un DOMException in caso di errore. Default TRUE.
substituteEntities bool no  
validateOnParse bool no Carica e valida nei confronti della DTD. Default FALSE.
version string no  
xmlEncoding string L'attributo specifica, come parte della dichiarazione XML, la codifica del docuemnto. Vale NULL se non specificato oppure quando non è noto, come quando il documento è creato in memoria.
xmlStandalone bool no Attributo che specifica, come parte della dichiarazione XML, se il documento è standalone. Vale FALSE se non specificato.
xmlVersion string no Attributo che specifica, come parte della dichiarazione XML, il numero di versione del documento. Se non viè una dichiarazione e se il documento supporta le spcifiche "XML", vale "1.0".

DOMDocumentType

Espande DOMNode

Ciascun DOMDocument possiede un attributo doctype il cui valore può essere o NULL o un oggetto DOMDocumentType.

Proprietà

Nome Tipo Sola lettura Descrizione
publicId string Identificatore pubblico del subset esterno.
systemId string Identificatore di sistema del subset esterno. Può essere un URI assoluto o meno.
name string Il nome della DTD; ad esempio il nome che segue immediatamente la parola chiave DOCTYPE.
entities DOMNamedNodeMap Un oggetto DOMNamedNodeMap che contiene le entità generali, sia interne che esterne, dichiarate nella DTD.
notations DOMNamedNodeMap Un oggetto DOMNamedNodeMap contenente le notazioni dichiarate nella DTD.
internalSubset string SubSet interno definito come stringa, oppure null se non vi è nulla. Questo non contiene le parentesi quadre di delimitazione.

DOMElement

Espande DOMNode.

Costruttori

Metodi

Proprietà

Nome Tipo Sola lettura Descrizione
schemaTypeInfo bool Non ancora implementato, restituisce sempre NULL
tagName string Nome dell'elemento

DOMEntity

Espande DOMNode

Questa interfaccia rappresenta una entità nota, sia interpretata che no, in un documento XML.

Proprietà

Nome Tipo Sola lettura Descrizione
publicId string Identificatore pubblico associato all'entità, se indicato, altrimenti NULL.
systemId string Identificatore di sistema associato all'entità, se indicato, altrimenti NULL. Può essere un URI assoluto.
notationName string Per le entità non interpretate, il nome della notazione dell'entità. Per le entità interpretate vale NULL.
actualEncoding string no Attributo che indica la codifica utilizzata per questa entità al momento dell'intepretazione, in caso di interpretazione di entità esterne. Vale NULL se si tratta di un'entità interna, o se non è noto.
encoding string Attributo che indica, come parte del testo di dichiarazione, la codifica dell'entità, in caso di entità esterna. Negli altri casi vale NULL.
version string Attributo che indica, come parte del testo di dichiarazione, il numero di versione di questa entità, in caso di entità esterna. Altrimenti NULL.

DOMEntityReference

Espande DOMNode.

Costruttori

DOMException

Le funzioni DOM, in casi particolari, generano delle eccezioni, ad esempio quando un'operazione non può essere eseguita per motivi logici.

Vedere anche Exceptions.

Proprietà

Nome Tipo Sola lettura Descrizione
code int Intero indicante il tipo di errore generato

DOMImplementation

L'interfaccia DOMImplementation fornisce diversi metodi per eseguire operazioni che sono indipendenti da qualsiasi istanza del modello ad oggetti del documento.

Costruttori

Metodi

DOMNode

Metodi

Proprietà

Nome Tipo Sola lettura Descrizione
nodeName string Restituisce un nome più accurato per il tipo di nodo.
nodeValue string no Valore di questo nodo, dipende dal tipo.
nodeType int Tipo di nodo. Una delle costanti XML_xxx_NODE predefinite.
parentNode DOMNode Nodo genitore di questo nodo.
childNodes DOMNodeList Un oggetto DOMNodeList che contiene tutti i nodi figli di questo nodo. Se non vi sono nodi figli, questa è un DOMNodeList vuoto.
firstChild DOMNode Il primo figlio di questo nodo. Se tale nodo non esiste, restituisce NULL.
lastChild DOMNode L'ultimo figlio di questo nodo. Se tale nodo non esiste, restituisce NULL.
previousSibling DOMNode Il nodo immediatamente precedente a questo. Se tale nodo non esiste, restituisce NULL.
nextSibling DOMNode Il nodo immediatamente seguente a questo. Se tale nodo non esiste, restituisce NULL.
attributes DOMNamedNodeMap Un oggetto DOMNamedNodeMap contenente gli attributi di questo nodo (se si tratta di un DOMElement) oppure NULL.
ownerDocument DOMDocument L'oggetto DOMDocument associato a questo nodo.
namespaceURI string L'URI dello spazio dei nomi di questo nodo, oppure NULL se non specificato.
prefix string no Prefisso dello spazio dei nomi del nodo, oppure NULL se non specificato.
localName string Restituisce la parte locale del nome qualificato del nodo.
baseURI string L'URI assoluto del nodo oppure NULL se l'implementazione non è in grado di ottenere l'URI assoluto.
textContent string no Questo attributo restituisce il testo contenuto nel nodo e nei suoi discendenti.

DOMNodeList

Metodi

Proprietà

Nome Tipo Sola lettura Descrizione
length int Numero di nodi nella lista. Il range valido per l'indice varia tra 0 e length - 1 compresi.

DOMNotation

Espande DOMNode

Proprietà

Nome Tipo Sola lettura Descrizione
publicId string  
systemId string  

DOMProcessingInstruction

Espande DOMNode.

Costruttori

Proprietà

Nome Tipo Sola lettura Descrizione
target string  
data string no  

DOMText

Espande DOMCharacterData.

Costruttori

Metodi

Proprietà

Nome Tipo Sola lettura Descrizione
wholeText string  

DOMXPath

Costruttori

Metodi

Proprietà

Nome Tipo Sola lettura Descrizione
document DOMDocument    

Esempi

Many examples in this reference require an XML file. We will use book.xml that contains the following:

Example#1 chapter.xml

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
 "https://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
]>
<book xml:id="listing">
 <title>My lists</title>
 <chapter xml:id="books">
  <title>My books</title>
  <para>
   <informaltable>
    <tgroup cols="4">
     <thead>
      <row>
       <entry>Title</entry>
       <entry>Author</entry>
       <entry>Language</entry>
       <entry>ISBN</entry>
      </row>
     </thead>
     <tbody>
      <row>
       <entry>The Grapes of Wrath</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>0140186409</entry>
      </row>
      <row>
       <entry>The Pearl</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>014017737X</entry>
      </row>
      <row>
       <entry>Samarcande</entry>
       <entry>Amine Maalouf</entry>
       <entry>fr</entry>
       <entry>2253051209</entry>
      </row>
      <!-- TODO: I have a lot of remaining books to add.. -->
     </tbody>
    </tgroup>
   </informaltable>
  </para>
 </chapter>
</book>

Costanti predefinite

Queste costanti sono definite da questa estensione e sono disponibili solo se l'estensione è stata compilata nel PHP o se è stata caricata dinamicamente a runtime.

Costanti XML
Costante Valore Descrizione
XML_ELEMENT_NODE (integer) 1 Il nodo è un DOMElement
XML_ATTRIBUTE_NODE (integer) 2 Il nodo è un DOMAttr
XML_TEXT_NODE (integer) 3 Il nodo è un DOMText
XML_CDATA_SECTION_NODE (integer) 4 Il nodo è un oggetto DOMCharacterData
XML_ENTITY_REF_NODE (integer) 5 Il nodo è un oggetto DOMEntityReference
XML_ENTITY_NODE (integer) 6 Il nodo è un DOMEntity
XML_PI_NODE (integer) 7 Il nodo è un DOMProcessingInstruction
XML_COMMENT_NODE (integer) 8 Il nodo è un DOMComment
XML_DOCUMENT_NODE (integer) 9 Il nodo è un DOMDocument
XML_DOCUMENT_TYPE_NODE (integer) 10 Il nodo è un oggetto DOMDocumentType
XML_DOCUMENT_FRAG_NODE (integer) 11 Il nodo è un oggetto DOMDocumentFragment
XML_NOTATION_NODE (integer) 12 Il nodo è un oggetto DOMNotation
XML_HTML_DOCUMENT_NODE (integer) 13  
XML_DTD_NODE (integer) 14  
XML_ELEMENT_DECL_NODE (integer) 15  
XML_ATTRIBUTE_DECL_NODE (integer) 16  
XML_ENTITY_DECL_NODE (integer) 17  
XML_NAMESPACE_DECL_NODE (integer) 18  
XML_ATTRIBUTE_CDATA (integer) 1  
XML_ATTRIBUTE_ID (integer) 2  
XML_ATTRIBUTE_IDREF (integer) 3  
XML_ATTRIBUTE_IDREFS (integer) 4  
XML_ATTRIBUTE_ENTITY (integer) 5  
XML_ATTRIBUTE_NMTOKEN (integer) 7  
XML_ATTRIBUTE_NMTOKENS (integer) 8  
XML_ATTRIBUTE_ENUMERATION (integer) 9  
XML_ATTRIBUTE_NOTATION (integer) 10  
Costanti DOMException
Costante Valore Descrizione
DOM_INDEX_SIZE_ERR (integer) 1 Se l'indice o la dimensione sono negativi, o maagiori del valore ammesso.
DOMSTRING_SIZE_ERR (integer) 2 Se il range di testo indicato non rientra nell'oggetto DOMString.
DOM_HIERARCHY_REQUEST_ERR (integer) 3 Se il nodo è inserito in posti non attesi
DOM_WRONG_DOCUMENT_ERR (integer) 4 Se il nodo viene utilizzato in documenti differenti rispetto a quello che lo ha creato.
DOM_INVALID_CHARACTER_ERR (integer) 5 Carattere invalido o illegale.
DOM_NO_DATA_ALLOWED_ERR (integer) 6 Dati indicati per un nodo che non gestisce i dati.
DOM_NO_MODIFICATION_ALLOWED_ERR (integer) 7 Tentativo di modifica di un oggetto che non permette modifiche.
DOM_NOT_FOUND_ERR (integer) 8 Riferimento ad un nodo in un contesto in cui non esiste.
DOM_NOT_SUPPORTED_ERR (integer) 9 Tipo di oggetto oppure operazione non supportata dall'implementazione.
DOM_INUSE_ATTRIBUTE_ERR (integer) 10 Tentativo di aggiungere un attributo già in uso altrove.
DOM_INVALID_STATE_ERR (integer) 11 Utilizzo di un oggetto che non è più utilizzabile.
DOM_SYNTAX_ERR (integer) 12 Stringa non valida o illegale.
DOM_INVALID_MODIFICATION_ERR (integer) 13 Tentativo di modificare il tipo dell'oggetto sottostante.
DOM_NAMESPACE_ERR (integer) 14 Tentativo di creare o modficiare un oggetto in un modo che non è corretto rispetto allo spazio dei nomi.
DOM_INVALID_ACCESS_ERR (integer) 15 Parametro od operazione non supportati dall'oggetto.
DOM_VALIDATION_ERR (integer) 16 Chiamata ad un metodo tipo insertBefore oppure removeChild che renda il nodo invalido ripetto ad una 'validazione parziale'; questa eccezione comporta la mancata esecuzione dell'operazione.

Indice dei contenuti