Hay algunas funciones que no encajan en el estándar DOM y no deberían de usarse más. Esta funciones están listadas en la siguiente tabla. La función DomNode_append_child() ha cambiado su comportamiento. Ahora añade un hijo en vez de un hermano. Si esto arruina su aplicación, use la función no éstandar DomNode_append_sibling().
Función antigua | Función nueva |
---|---|
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() seguida de DomNode_append_child() |
DomDocument_dtd | DomDocument_doctype() |
DomDocument_root | DomDocument_document_element() |
DomDocument_children | DomNode_child_nodes() |
DomDocument_imported_node | Sin reemplazo. |
DomNode_add_child | Crea un nuevo nodo con, p.ej., DomDocument_create_element() y lo añade con DomNode_append_child(). |
DomNode_children | DomNode_child_nodes() |
DomNode_parent | DomNode_parent_node() |
DomNode_new_child | Crea un nuevo nodo con, p.ej., DomDocument_create_element() y lo añade con DomNode_append_child(). |
DomNode_set_content | Crea un nuevo nodo con, p.ej., DomDocument_create_text_node() y lo añade con DomNode_append_child(). |
DomNode_get_content | El contenido es sólo un nodo de texto y se puede acceder con DomNode_child_nodes(). |
DomNode_set_content | El contenido es sólo un nodo de texto y se puede acceder con DomNode_append_child(). |
La API del módulo sigue el estándar DOM Nivel 2 standard tan estrechamente como es posible. Por lo tanto, la API está completamente orientada a objetos. Es una buena idea tener el estándar DOM disponibles cuando se use este módulo. Aunque la API está orientada a objetos, hay muchas funciones que pueden ser llamadas de una forma no orientada a objetos pasando el objeto que va a operar como primer argumento. Estas funciones están principalmente para mantener la compatibilidad con versiones antiguas de la extensión, y no deberían usarse cuando se creen nuevos scripts.
Esta API difiere de la API DOM oficial de dos maneras. Primero, todos los atributos de clase están implementados como funciones con el mismo nombre. Segundo, los nombres de funciones siguen la convención de nombres de PHP. Esto significa que una función DOM lastChild() será escrita como last_child().
Este módulo define varias clases que están listadas - incluyendo sus métodos - en las siguientes tablas. Las clases con un equivalente en el estándar DOM son llamadas DOMxxx.
Nombre de la clase | Clases padre |
---|---|
DomAttribute | DomNode |
DomCData | DomNode |
DomComment | DomCData : DomNode |
DomDocument | DomNode |
DomDocumentType | DomNode |
DomElement | DomNode |
DomEntity | DomNode |
DomEntityReference | DomNode |
DomProcessingInstruction | DomNode |
DomText | DomCData : DomNode |
Parser | Actualmente todavía se llama DomParser |
XPathContext |
Nombre del método | Nombre de la función | Observación |
---|---|---|
doctype | DomDocument_doctype() | |
document_element | 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() | no está en el estándar DOM |
dump_file | DomDocument_dump_file() | no está en el estándar DOM |
html_dump_mem | DomDocument_html_dump_mem() | no está en el estándar DOM |
xpath_init | xpath_init | no está en el estándar DOM |
xpath_new_context | xpath_new_context | no está en el estándar DOM |
xptr_new_context | xptr_new_context | no está en el estándar DOM |
Nombre del método | Nombre de la función | Observación |
---|---|---|
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() | |
set_attribute_node | DomElement_set_attribute_node() | |
get_elements_by_tagname | DomElement_get_elements_by_tagname() | |
has_attribute | DomElement_has_attribute() |
Nombre del método | Observación |
---|---|
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() | no está en el estándar DOM. Esta función emula el antiguo comportamiento de DomNode_append_child(). |
DomNode_remove_child() | |
DomNode_has_child_nodes() | |
DomNode_has_attributes() | |
DomNode_clone_node() | |
DomNode_attributes() | |
DomNode_unlink_node() | no está en el estándar DOM |
DomNode_replace_node() | no está en el estándar DOM |
DomNode_set_content() | no está en el estándar, obsoleto |
DomNode_get_content() | no está en el estándar, obsoleto |
DomNode_dump_node() | no está en el estándar DOM |
DomNode_is_blank_node() | no está en el estándar DOM |
Nombre del método | Observación | |
---|---|---|
name | DomAttribute_name() | |
value | DomAttribute_value() | |
specified | DomAttribute_specified() |
Nombre del método | Nombre de la función | Observación |
---|---|---|
target | DomProcessingInstruction_target() | |
data | DomProcessingInstruction_data() |
Nombre del método | Nombre de la función | Observación |
---|---|---|
add_chunk | Parser_add_chunk() | |
end | Parser_end() |
Nombre del método | Nombre de la función | Observación |
---|---|---|
eval | XPathContext_eval() | |
eval_expression | XPathContext_eval_expression() | |
register_ns | XPathContext_register_ns() |
Nombre del método | Nombre de la función | Observación |
---|---|---|
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 clase DomDtd está derivada de DomNode. DomComment está derivada de DomCData.
Muchos ejemplos de esta referencia requieren una cadena XML. En vez de repetir esta cadena en cada ejemplo, se colocará en un fichero que será incluido por cada ejemplo. Esto fichero incluido se muestra en la sección del ejemplo siguientes. Alternativamente, se podría crear un documento XML y leerlo con DomDocument_open_file().
Example #1 Fichero incluido example.inc con cadena XML
<?php
$xmlstr = "<?xml version='1.0' standalone='yes'?>
<!DOCTYPE chapter SYSTEM '/share/sgml/Norman_Walsh/db3xml10/db3xml10.dtd'
[ <!ENTITY sp \"spanish\">
]>
<!-- lsfj -->
<chapter language='en'><title language='en'>Title</title>
<para language='ge'>
&sp;
<!-- comment -->
<informaltable ID='findme' language='&sp;'>
<tgroup cols='3'>
<tbody>
<row><entry>a1</entry><entry
morerows='1'>b1</entry><entry>c1</entry></row>
<row><entry>a2</entry><entry>c2</entry></row>
<row><entry>a3</entry><entry>b3</entry><entry>c3</entry></row>
</tbody>
</tgroup>
</informaltable>
</para>
</chapter>";
?>