Es gibt ziemlich viele Funktionen, die nicht in den DOM-Standard passen und nicht mehr länger benutzt werden sollten. Diese Funktionen sind in der folgenden Tabelle aufgelistet. Die Funktion DomNode_append_child() hat ihr Verhalten geändert, indem sie nun ein 'Kind' statt einem 'Geschwister' hinzufügt. Wenn Ihre Applikation deshalb nicht mehr funktioniert, verwenden Sie die nicht DOM-standardkonforme Funktion DomNode_append_sibling().
Alte Funktion | Neue Funktion |
---|---|
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() gefolgt von DomNode_append_child() |
DomDocument_dtd | DomDocument_doctype() |
DomDocument_root | DomDocument_document_element() |
DomDocument_children | DomNode_child_nodes() |
DomDocument_imported_node | Kein Ersatz. |
DomNode_add_child | Erstellen Sie einen neuen Knoten mit z.B. DomDocument_create_element() und fügen Sie ihn mit DomNode_append_child() hinzu. |
DomNode_children | DomNode_child_nodes() |
DomNode_parent | DomNode_parent_node() |
DomNode_new_child | Erstellen Sie einen neuen Knoten mit z.B. DomDocument_create_element() und fügen Sie ihn mit DomNode_append_child() hinzu. |
DomNode_set_content | Erstellen Sie einen neuen Knoten mit z.B. DomDocument_create_text_node() und fügen Sie ihn mit DomNode_append_child() hinzu. |
DomNode_get_content | Der Inhalt ist nur ein Textknoten, auf den mittels DomNode_child_nodes() zugegriffen werden kann. |
DomNode_set_content | Der Inhalt ist nur ein Textknoten, der mittels DomNode_append_child() hinzugefügt werden kann. |
Das API dieses Moduls entspricht dem DOM-Level-2-Standard so weit wie möglich. Folglich ist das API vollständig objektorientiert. Es wäre sinnvoll, den DOM-Standard verfügbar zu haben, wenn Sie dieses Modul benutzen. Obwohl das API objektorientiert ist, gibt es viele Funktionen, die in einer nicht-objektorientierten Art aufgerufen werden können, indem das zu bearbeitende Objekt als das erste Argument übergeben wird. Diese Funktionen dienen hauptsächlich der Kompatibilität zu älteren Versionen dieser Erweiterung und sollten deshalb beim Erstellen neuer Skripte nicht mehr verwendet werden.
Dieses API unterscheidet sich von dem offiziellen DOM-API auf zwei Arten. Erstens sind alle Klassenattribute als Funktionen mit dem selben Namen implementiert. Zweitens folgen die Funktionsnamen der PHP-Namenskonvention. Das heißt, dass eine DOM-Funktion lastChild() als last_child() geschrieben wird.
Dieses Modul definiert eine Anzahl Klassen, die - inklusive ihrer Methoden - in den folgenden Tabellen aufgelistet sind. Klassen mit einem Äquivalent im DOM-Standard werden DOMxxx genannt.
Klassenname | Basisklassen |
---|---|
DomAttribute | DomNode |
DomCData | DomNode |
DomComment | DomCData : DomNode |
DomDocument | DomNode |
DomDocumentType | DomNode |
DomElement | DomNode |
DomEntity | DomNode |
DomEntityReference | DomNode |
DomProcessingInstruction | DomNode |
DomText | DomCData : DomNode |
Parser | Derzeit noch immer DomParser genannt |
XPathContext |
Methodenname | Funktionsname | Anmerkung |
---|---|---|
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() | kein DOM-Standard |
dump_file | DomDocument_dump_file() | kein DOM-Standard |
html_dump_mem | DomDocument_html_dump_mem() | kein DOM-Standard |
xpath_init | xpath_init | kein DOM-Standard |
xpath_new_context | xpath_new_context | kein DOM-Standard |
xptr_new_context | xptr_new_context | kein DOM-Standard |
Methodenname | Funktionsname | Anmerkung |
---|---|---|
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() |
Methodenname | Anmerkung |
---|---|
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() | Nicht im DOM-Standard. Diese Funktion emuliert das frühere Verhalten von DomNode_append_child(). |
DomNode_remove_child() | |
DomNode_has_child_nodes() | |
DomNode_has_attributes() | |
DomNode_clone_node() | |
DomNode_attributes() | |
DomNode_unlink_node() | Nicht im DOM-Standard |
DomNode_replace_node() | Nicht im DOM-Standard |
DomNode_set_content() | Nicht im DOM-Standard, veraltet |
DomNode_get_content() | Nicht im DOM-Standard, veraltet |
DomNode_dump_node() | Nicht im DOM-Standard |
DomNode_is_blank_node() | Nicht im DOM-Standard |
Methodenname | Anmerkung | |
---|---|---|
name | DomAttribute_name() | |
value | DomAttribute_value() | |
specified | DomAttribute_specified() |
Methodenname | Funktionsname | Anmerkung |
---|---|---|
target | DomProcessingInstruction_target() | |
data | DomProcessingInstruction_data() |
Methodenname | Funktionsname | Anmerkung |
---|---|---|
add_chunk | Parser_add_chunk() | |
end | Parser_end() |
Methodenname | Funktionsname | Anmerkung |
---|---|---|
eval | XPathContext_eval() | |
eval_expression | XPathContext_eval_expression() | |
register_ns | XPathContext_register_ns() |
Methodenname | Funktionsname | Anmerkung |
---|---|---|
name | DomDocumentType_name() | |
entities | DomDocumentType_entities() | |
notations | DomDocumentType_notations() | |
public_id | DomDocumentType_public_id() | |
system_id | DomDocumentType_system_id() | |
internal_subset | DomDocumentType_internal_subset() |
Die Klasse DomDtd ist von DomNode, und DomComment von DomCData abgeleitet
Viele Beispiele in dieser Referenz erfordern einen XML-String. Anstatt diesen String laufend zu wiederholen, wird er in eine Datei geschrieben, die von jedem Beispiel eingebunden wird. Diese einzubindende Datei wird in dem folgenden Beispielteil gezeigt. Alternativ dazu können Sie ein XML Dokument erstellen, und dieses mit DomDocument_open_file() einlesen.
Beispiel #1 Einzubindende Datei example.inc mit XML-String
<?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>";
?>