Funzioni DOM XML
DOM XML
&reftitle.intro;
&warn.experimental;
Nella versione 4.3.0 di PHP l'estensione DOM XML è stata rivista in modo
da fornire una migliore adesione allo standard DOM. Il modulo contiene ancora
diverse vecchie funzioni, ma non dovrebbero essere più usate. Specialmente
quelle funzioni non orientate agli oggetti.
Questo modulo permette di operare con un documento XML utilizzando API DOM.
Inoltre viene fornita una funzione, domxml_xmltree, per convertire
l'intero documento XML in un albero di oggetti PHP. Attualmente questo
albero dovrebbe essere considerato di sola lettura, è possibile modificarlo, ma
questa operazione non avrebbe senso dato che la funzione DomDocument_dump_mem
non può essere applicata
all'albero. Pertanto se si desidera leggere un file XML e scriverne una
versione modificata, occorre utilizzare le funzioni DomDocument_create_element,
DomDocument_create_text_node,
set_attribute, ecc. ed infine
DomDocument_dump_mem.
&reftitle.required;
Questo modulo utilizza la libreria
GNOME xml library. Fare il download
ed installare questa libreria. Occorre avere almeno la libxml-2.4.14.
Per potere utilizzare le caratteristiche previste nel DOM XSLT occorre
utilizzare libxslt library ed EXSLT
enhancements da &url.exslt;. Scaricare
ed installare queste librerie se si prevede di utilizzare la funzioni
avanzate di XSLT. Occorre almeno la versione libxslt-1.0.18.
&reference.domxml.configure;
Funzioni deprecate
Esistono alcune funzioni che non rientrano nello standard DOM e quindi
non dovrebbero essere più utilizzate come evidenziato nella tabella seguente.
La funzione DomNode_append_child ha modificato il suo
comportamento. Attualmente aggiunge un figlio e non un elemento fratello. Se ciò crea
problemi alle applicazioni si può usare la funzione non DOM
Funzioni deprecate e loro sostituti
Vecchia funzione
Nuova funzione
xmldoc
domxml_open_mem
xmldocfile
domxml_open_file
domxml_new_xmldoc
domxml_new_doc
domxml_dump_mem
DomDocument_dump_mem
domxml_dump_mem_file
DomDocument_dump_file
DomDocument_dump_mem_file
DomDocument_dump_file
DomDocument_add_root
DomDocument_create_element seguita da
DomNode_append_child
DomDocument_dtd
DomDocument_doctype
DomDocument_root
DomDocument_document_element
DomDocument_children
DomNode_child_nodes
DomDocument_imported_node
Nessun sostituto.
DomNode_add_child
Creare un nuovo nodo con, ad esempio,
DomDocument_create_element e aggiungere il figlio con
DomNode_append_child.
DomNode_children
DomNode_child_nodes
DomNode_parent
DomNode_parent_node
DomNode_new_child
Creare un nuovo nodo con, ad esempio,
DomDocument_create_element e aggiungere il figlio con
DomNode_append_child.
DomNode_get_content
Il contenuto è semplicemente un nodo di testo ed è accessibile tramite
DomNode_child_nodes.
DomNode_set_content
Il contenuto è semplicemente un nodo di testo e può essere aggiunto con
DomNode_append_child.
&reference.domxml.constants;
Classi
Le API di questo modulo aderiscono il più possibile allo standard
DOM di livello 2. Di conseguenza le API sono completamente orientate agli oggetti.
Si ritiene una buona idea avere disponibile lo standard DOM quando
si utilizza questo modulo.
Sebbene le API siano orientate agli oggetti, vi sono alcune funzioni che possono
essere richiamate in modo non orientato agli oggetti, passando l'oggetto su cui operare come
primo argomento. Queste funzioni sono state mantenute per compatibilità
verso le vecchie versioni del modulo, ma non se ne incoraggia l'uso nello
sviluppo di nuovi prodotti.
Queste API differiscono della API DOM ufficiali per due aspetti. Primo, gli attributi
della classe sono implermentati come funzioni con il medesimo nome e, secondo,
i nomi delle funzioni seguono la convenzione del PHP. Questo significa che
la funzione DOM lastChild() sarà chiamata last_child().
In questo modulo sono definite diverse classi, queste saranno elencate
— compresi i loro metodi —
nella seguente tabella. Le classi con un equivalente nello standard
DOM sono chiamate DOMxxx.
Elenco delle classi
Nome della classe
Classe genitrice
DomAttribute
DomNode
DomCData
DomNode
DomComment
DomCData : DomNode
DomDocument
DomNode
DomDocumentType
DomNode
DomElement
DomNode
DomEntity
DomNode
DomEntityReference
DomNode
DomProcessingInstruction
DomNode
DomText
DomCData : DomNode
Parser
Attualmente chiamata DomParser
XPathContext
Classe DomDocument (DomDocument : DomNode)
Metodi
Funzioni
Note
doctype
DomDocument_doctype
document_elemnent
DomDocument_document_element
create_element
DomDocument_create_element
create_text_node
DomDocument_create_text_node
create_comment
DomDocument_create_comment
create_cdata_section
DomDocument_create_cdata_section
create_processing_instruction
DomDocument_create_processing_instruction
create_attribute
DomDocument_create_attribute
create_entity_reference
DomDocument_create_entity_reference
get_elements_by_tagname
DomDocument_get_elements_by_tagname
get_element_by_id
DomDocument_get_element_by_id
dump_mem
DomDocument_dump_mem
non standard DOM
dump_file
DomDocument_dump_file
non standard DOM
html_dump_mem
DomDocument_html_dump_mem
non standard DOM
xpath_init
xpath_init
non standard DOM
xpath_new_context
xpath_new_context
non standard DOM
xptr_new_context
xptr_new_context
non standard DOM
Classe DomElement (DomElement : DomNode)
Metodo
Funzioni
Note
tagname
DomElement_tagname
get_attribute
DomElement_get_attribute
set_attribute
DomElement_set_attribute
remove_attribute
DomElement_remove_attribute
get_attribute_node
DomElement_get_attribute_node
get_elements_by_tagname
DomElement_get_elements_by_tagname
has_attribute
DomElement_has_attribute
Classe DomNode
Metodo
Note
DomNode_node_name
DomNode_node_value
DomNode_node_type
DomNode_last_child
DomNode_first_child
DomNode_child_nodes
DomNode_previous_sibling
DomNode_next_sibling
DomNode_parent_node
DomNode_owner_document
DomNode_insert_before
DomNode_append_child
DomNode_append_sibling
non standard DOM. Questa funzione emula il comportamento
di DomNode_append_child.
DomNode_remove_child
DomNode_has_child_nodes
DomNode_has_attributes
DomNode_clone_node
DomNode_attributes
DomNode_unlink_node
non standard DOM
DomNode_replace_node
non standard DOM
DomNode_set_content
non standard DOM, deprecata
DomNode_get_content
non standard DOM, deprecata
DomNode_dump_node
non standard DOM
DomNode_is_blank_node
non standard DOM
Classe DomAttribute (DomAttribute : DomNode)
Metodo
Note
name
DomAttribute_name
value
DomAttribute_value
specified
DomAttribute_specified
Classe DomProcessingInstruction (DomProcessingInstruction : DomNode)
Metodo
Funzione
Note
target
DomProcessingInstruction_target
data
DomProcessingInstruction_data
Classe Parser class
Metodo
Funzione
Note
add_chunk
Parser_add_chunk
end
Parser_end
Classe XPathContext
Metodo
Funzione
Note
eval
XPathContext_eval
eval_expression
XPathContext_eval_expression
register_ns
XPathContext_register_ns
Classe DomDocumentType (DomDocumentType : DomNode)
Metodo
Funzione
Note
name
DomDocumentType_name
entities
DomDocumentType_entities
notations
DomDocumentType_notations
public_id
DomDocumentType_public_id
system_id
DomDocumentType_system_id
internal_subset
DomDocumentType_internal_subset
La classe DomDtd è derivata da DomNode. Mentre DomComment è derivata da
DomCData
&reftitle.examples;
Diversi esempi presenti in questo manuale richiedono un testo XML. Anzichè
ripetere questo testo in ogni esempio, si inserirà il testo in un file
che verrà incluso in ogni esempio. Questo file di include verrà illustrato
nel seguente esempio. Si può anche creare un documento XML e
leggerlo con DomDocument_open_file.
File di include example.inc con testo XML
]>
Title
&sp;
a1b1c1
a2c2
a3b3c3
";
?>
]]>
&reference.domxml.functions;