DOM XML (PHP 4) Функции

Устаревшие функции

Довольно много функций в расширении не вписываются в стандарт DOM и не будут в дальнейшем использоваться. Эти функции представлены в приведенном ниже списке. Функция DomNode_append_child() изменила свое поведение. Теперь она добавляет только сына узла и не добавляет брата. Если это поведение неприемлемо для вашего приложения, используйте не-DOM функцию DomNode_append_sibling().

Устаревшие и их заменяющие функции
Устаревшая функция Новая функция
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() followed by DomNode_append_child()
DomDocument_dtd DomDocument_doctype()
DomDocument_root DomDocument_document_element()
DomDocument_children DomNode_child_nodes()
DomDocument_imported_node No replacement.
DomNode_add_child Создает новый узел, например функцией DomDocument_create_element(), и добавляет его функцией DomNode_append_child().
DomNode_children DomNode_child_nodes()
DomNode_parent DomNode_parent_node()
DomNode_new_child Создает новый узел, например функцией DomDocument_create_element(), и добавляет его функцией DomNode_append_child().
DomNode_set_content Создает новый узел, например функцией DomDocument_create_text_node(), и добавляет его функцией DomNode_append_child().
DomNode_get_content Контент - это просто текстовый узел, доступ к которому можно получить посредством DomNode_child_nodes().
DomNode_set_content Контент - это просто текстовый узел, который можно добавить посредством DomNode_append_child().

Классы

API этого модуля соответствует стандарту DOM Level 2 настолько, насколько это возможно. В частности, API полностью объектно-ориентированный. Было бы неплохой идеей иметь под рукой стандарт DOM при работе с этим модулем. Несмотря на то, что API объектно-ориентирован, есть множество функций, которые могут вызываться в процедурном стиле посредством передачи объекта обработки первым аргументом функции. Эти функции предназначены для сохранения совместимости со старыми версиями расширения и не должны применяться в новых создаваемых скриптах.

Этот API отличается от официального DOM API по двум направлениям. Во-первых, все свойства класса представлены в виде одноименных функций. Во-вторых, имена функций соответствуют правилам именования функций в PHP. Это означает, что DOM-функция lastChild() будет записана как last_child().

В модуле определены классы, которые приведены в списке ниже, включая свои методы. Классы, являющиеся аналогом классов в стандарте DOM, имеют название вида DOMxxx.

Список классов
Имя класса Родительские классы
DomAttribute DomNode
DomCData DomNode
DomComment DomCData : DomNode
DomDocument DomNode
DomDocumentType DomNode
DomElement DomNode
DomEntity DomNode
DomEntityReference DomNode
DomProcessingInstruction DomNode
DomText DomCData : DomNode
Parser На данный момент все еще именуется, как DomParser
XPathContext  

Класс DomDocument (DomDocument : DomNode)
Имя метода Имя функции Замечание
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() отсутствует в стандарте DOM
dump_file DomDocument_dump_file() отсутствует в стандарте DOM
html_dump_mem DomDocument_html_dump_mem() отсутствует в стандарте DOM
xpath_init xpath_init отсутствует в стандарте DOM
xpath_new_context xpath_new_context отсутствует в стандарте DOM
xptr_new_context xptr_new_context отсутствует в стандарте DOM

Класс DomElement (DomElement : DomNode)
Имя метода Имя функции Замечание
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()  

Класс DomNode
Имя метода Замечание
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. Эта функция эмулирует поведение DomNode_append_child(), касающееся создания узла.
DomNode_remove_child()  
DomNode_has_child_nodes()  
DomNode_has_attributes()  
DomNode_clone_node()  
DomNode_attributes()  
DomNode_unlink_node() Отсутствует в стандарте DOM
DomNode_replace_node() Отсутствует в стандарте DOM
DomNode_set_content() Отсутствует в стандарте DOM, устарела
DomNode_get_content() Отсутствует в стандарте DOM, устарела
DomNode_dump_node() Отсутствует в стандарте DOM
DomNode_is_blank_node() Отсутствует в стандарте DOM

Класс DomAttribute (DomAttribute : DomNode)
Имя метода   Замечание
name DomAttribute_name()  
value DomAttribute_value()  
specified DomAttribute_specified()  

Класс DomProcessingInstruction (DomProcessingInstruction : DomNode)
Имя метода Имя функции Замечание
target DomProcessingInstruction_target()  
data DomProcessingInstruction_data()  

Класс Parser
Имя метода Имя функции Замечание
add_chunk Parser_add_chunk()  
end Parser_end()  

Класс XPathContext
Имя метода Имя функции Замечание
eval XPathContext_eval()  
eval_expression XPathContext_eval_expression()  
register_ns XPathContext_register_ns()  

Класс DomDocumentType (DomDocumentType : DomNode)
Имя метода Имя функции Замечание
name DomDocumentType_name()  
entities DomDocumentType_entities()  
notations DomDocumentType_notations()  
public_id DomDocumentType_public_id()  
system_id DomDocumentType_system_id()  
internal_subset DomDocumentType_internal_subset()  

Класс DomDtd исключен из DomNode. DomComment исключен из DomCData.

Примеры

Многие примеры в этом разделе требуют наличия строки XML. Вместо повторения этой строки в каждом примере, она помещена в файл, который будет добавляться в примерах. Содержимое этого файла приведено ниже в подразделе примеров. С другой стороны, ничего не мешает вам создать собственный XML документ и прочитать его функцией DomDocument_open_file().

Пример #1 Включаемый файл example.inc c 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>"
;
?>

Содержание


Участник рейтинга Тэглайн 2010