DOM standardına uygun olmayan bir kaç işlev bulunmakta olup artık kullanılmamaları gerekir. Bu işlevler aşağıdaki tabloda listelenmiştir. DomNode_append_child() işlevinin davranışı değişmiştir. Artık bir kardeş değil bir çocuk düğüm eklemektedir. Bu durum uygulamanızın davranışını bozuyorsa, bu işlev yerine bir DOM işlevi olmayan DomNode_append_sibling() işlevini kullanın.
Eski işlev | Yeni işlev |
---|---|
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() işlevinden sonra DomNode::append_child() |
DomDocument_dtd() | DomDocument::doctype() |
DomDocument_root() | DomDocument::document_element() |
DomDocument_children() | DomNode::child_nodes() |
DomDocument_imported_node() | Karşılığı yoktur. |
DomNode_add_child() | Örneğin, DomDocument::create_element() ile yeni bir düğüm oluşturup çocuk düğümü DomNode::append_child() ile ekleyin. |
DomNode_children() | DomNode::child_nodes() |
DomNode_parent() | DomNode::parent_node() |
DomNode_new_child() | Örneğin, DomDocument::create_element() ile yeni bir düğüm oluşturup çocuk düğümü DomNode::append_child() ile ekleyin. |
DomNode_set_content() | Örneğin, DomDocument::create_text_node() ile yeni bir düğüm oluşturup çocuk düğümü DomNode::append_child() ile ekleyin. |
DomNode_get_content() | İçerik bir metin düğümü olup içeriğe DomNode::child_nodes() ile erişilebilir. |
DomNode_set_content() | İçerik bir metin düğümü olup DomNode::child_nodes() işlevi ile eklenebilir. |
Modül arayüzü 2. seviye DOM standardına mümkün olduğunca uygun olup arayüz tamamen nesne yönelimlidir. Bu modülü kullanabilmek için DOM standardını bilmeniz iyi olacaktır. Arayüz nesne yönelimli olsa da ilk değiştirgesinde nesneyi aktarmak suretiyle kullanılabilen nesne yönelimli olmayan bazı işlevler de vardır. Bu işlevler esas olarak, eklentinin eski sürümlerine uyumluluk için vardır ve yeni betiklerde kullanılmamalıdır.
Bu arayüz DOM arayüzünden iki bakımdan farklıdır. İlki, tüm sınıf özellikleri aynı isimde birer işlev olarak gerçeklenmiştir. İkinci fark ise, işlev isimlerinin PHP isimlendirme kurallarına göre verilmiş olmasıdır. Yani, örneğin, lastChild() DOM işlevi last_child() adıyla gerçeklenmiştir.
Bu modülde tanımlanan sınıflar ve yöntemleri aşağıdaki tablolarda listelenmiştir. DOM standardına eşdeğer sınıflar DOMxxx biçeminde isimlendirilmiştir.
Sınıf ismi | Ebeveyn sınıflar |
---|---|
DomAttribute | DomNode |
DomCData | DomNode |
DomComment | DomCData : |
DomDocument | DomNode |
DomDocumentType | DomNode |
DomElement | DomNode |
DomEntity | DomNode |
DomEntityReference | DomNode |
DomProcessingInstruction | DomNode |
DomText | DomCData : DomNode |
Parser | DomParser |
XPathContext |
Yöntem ismi | Açıklama |
---|---|
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() | DOM standardı değil. Bu yöntem DomNode::append_child() yönteminin davranışını taklit eder. |
DomNode::remove_child() | |
DomNode::has_child_nodes() | |
DomNode::has_attributes() | |
DomNode::clone_node() | |
DomNode::attributes() | |
DomNode::unlink_node() | DOM standardı değil |
DomNode::replace_node() | DOM standardı değil |
DomNode::set_content() | DOM standardı değil, kullanımı önerilmiyor. |
DomNode::get_content() | DOM standardı değil, kullanımı önerilmiyor. |
DomNode::dump_node() | DOM standardı değil |
DomNode::is_blank_node() | DOM standardı değil |
Yöntem ismi | İşlev ismi | Remark |
---|---|---|
DomAttribute::name() | DomAttribute_name() | |
DomAttribute::value() | DomAttribute_value() | |
DomAttribute::specified() | DomAttribute_specified() |
Yöntem ismi | İşlev ismi | Açıklama |
---|---|---|
DomProcessingInstruction::target() | DomProcessingInstruction_target() | |
DomProcessingInstruction::data() | DomProcessingInstruction_data() |
Yöntem ismi | İşlev ismi | Açıklama |
---|---|---|
Parser::add_chunk() | Parser_add_chunk() | |
Parser::end() | Parser_end() |
Yöntem ismi | İşlev ismi | Açıklama |
---|---|---|
XPathContext:eval() | XPathContext_eval() | |
XPathContext::eval_expression() | XPathContext_eval_expression() | |
XPathContext::register_ns() | XPathContext_register_ns() |
Yöntem ismi | İşlev ismi | Açıklama |
---|---|---|
DomDocumentType::name() | DomDocumentType_name() | |
DomDocumentType::entities() | DomDocumentType_entities() | |
DomDocumentType::notations() | DomDocumentType_notations() | |
DomDocumentType::public_id() | DomDocumentType_public_id() | |
DomDocumentType::system_id() | DomDocumentType_system_id() | |
DomDocumentType::internal_subset() | DomDocumentType_internal_subset() |
DomDtd sınıfı DomNode sınıfından, DomComment sınıfı ise DomCData sınıfından türetilmiştir.
Bu eklentinin belgelerindeki pek çok örnek bir XML dizge gerektirir. Bu dizgeyi her örnekte yinelemek yerine bir dosyaya konup, her örnekte bu dosya içerilmiştir. Bu dosyanın içeriği aşağıda verilmiştir. Siz de bir XML belge oluşturup domxml_open_file() ile okutabilirdiniz.
Örnek 1 - XML dizgesi olarak içerilecek example.inc dosyası
<?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>";
?>