DOM XML (PHP 4) Функции
Вернуться к: 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 |
| Имя метода | Имя функции | Замечание |
|---|---|---|
| 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 |
| Имя метода | Имя функции | Замечание |
|---|---|---|
| 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_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 |
| Имя метода | Замечание | |
|---|---|---|
| name | DomAttribute_name() | |
| value | DomAttribute_value() | |
| specified | DomAttribute_specified() |
| Имя метода | Имя функции | Замечание |
|---|---|---|
| target | DomProcessingInstruction_target() | |
| data | DomProcessingInstruction_data() |
| Имя метода | Имя функции | Замечание |
|---|---|---|
| add_chunk | Parser_add_chunk() | |
| end | Parser_end() |
| Имя метода | Имя функции | Замечание |
|---|---|---|
| eval | XPathContext_eval() | |
| eval_expression | XPathContext_eval_expression() | |
| register_ns | XPathContext_register_ns() |
| Имя метода | Имя функции | Замечание |
|---|---|---|
| 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>";
?>
Содержание
- DomAttribute::name — Returns the name of attribute
- DomAttribute::set_value — Sets the value of an attribute
- DomAttribute::specified — Checks if attribute is specified
- DomAttribute::value — Returns value of attribute
- DomDocument::add_root — Adds a root node [deprecated]
- DomDocument::create_attribute — Create new attribute
- DomDocument::create_cdata_section — Create new cdata node
- DomDocument::create_comment — Create new comment node
- DomDocument::create_element_ns — Create new element node with an associated namespace
- DomDocument::create_element — Create new element node
- DomDocument::create_entity_reference — Create an entity reference
- DomDocument::create_processing_instruction — Creates new PI node
- DomDocument::create_text_node — Create new text node
- DomDocument::doctype — Returns the document type
- DomDocument::document_element — Returns root element node
- DomDocument::dump_file — Dumps the internal XML tree back into a file
- DomDocument::dump_mem — Dumps the internal XML tree back into a string
- DomDocument::get_element_by_id — Searches for an element with a certain id
- DomDocument::get_elements_by_tagname — Returns array with nodes with given tagname in document or empty array, if not found
- DomDocument::html_dump_mem — Dumps the internal XML tree back into a string as HTML
- DomDocument::xinclude — Substitutes XIncludes in a DomDocument Object
- DomDocumentType::entities — Returns list of entities
- DomDocumentType::internal_subset — Returns internal subset
- DomDocumentType::name — Returns name of document type
- DomDocumentType::notations — Returns list of notations
- DomDocumentType::public_id — Returns public id of document type
- DomDocumentType::system_id — Returns the system id of document type
- DomElement::get_attribute_node — Returns the node of the given attribute
- DomElement::get_attribute — Returns the value of the given attribute
- DomElement::get_elements_by_tagname — Gets elements by tagname
- DomElement::has_attribute — Checks to see if an attribute exists in the current node
- DomElement::remove_attribute — Removes attribute
- DomElement::set_attribute_node — Adds new attribute
- DomElement::set_attribute — Sets the value of an attribute
- DomElement::tagname — Returns the name of the current element
- DomNode::add_namespace — Adds a namespace declaration to a node
- DomNode::append_child — Adds a new child at the end of the children
- DomNode::append_sibling — Adds new sibling to a node
- DomNode::attributes — Returns list of attributes
- DomNode::child_nodes — Returns children of node
- DomNode::clone_node — Clones a node
- DomNode::dump_node — Dumps a single node
- DomNode::first_child — Returns first child of node
- DomNode::get_content — Gets content of node
- DomNode::has_attributes — Checks if node has attributes
- DomNode::has_child_nodes — Checks if node has children
- DomNode::insert_before — Inserts new node as child
- DomNode::is_blank_node — Checks if node is blank
- DomNode::last_child — Returns last child of node
- DomNode::next_sibling — Returns the next sibling of node
- DomNode::node_name — Returns name of node
- DomNode::node_type — Returns type of node
- DomNode::node_value — Returns value of a node
- DomNode::owner_document — Returns the document this node belongs to
- DomNode::parent_node — Returns the parent of the node
- DomNode::prefix — Returns name space prefix of node
- DomNode::previous_sibling — Returns the previous sibling of node
- DomNode::remove_child — Removes child from list of children
- DomNode::replace_child — Replaces a child
- DomNode::replace_node — Replaces node
- DomNode::set_content — Sets content of node
- DomNode::set_name — Sets name of node
- DomNode::set_namespace — Sets namespace of a node
- DomNode::unlink_node — Deletes node
- DomProcessingInstruction::data — Returns the data of ProcessingInstruction node
- DomProcessingInstruction::target — Returns the target of a ProcessingInstruction node
- DomXsltStylesheet::process — Applies the XSLT-Transformation on a DomDocument Object
- DomXsltStylesheet::result_dump_file — Dumps the result from a XSLT-Transformation into a file
- DomXsltStylesheet::result_dump_mem — Dumps the result from a XSLT-Transformation back into a string
- domxml_new_doc — Создает новый пустой XML документ
- domxml_open_file — Создает объект DOM из XML файла
- domxml_open_mem — Создает объект DOM XML документа
- domxml_version — Получает номер версии XML библиотеки
- domxml_xmltree — Создает дерево объектов PHP из XML документа
- domxml_xslt_stylesheet_doc — Создает объект класса DomXsltStylesheet из объекта DomDocument
- domxml_xslt_stylesheet_file — Создает объект DomXsltStylesheet из XML файла
- domxml_xslt_stylesheet — Создает объект DomXsltStylesheet из строки XSL
- domxml_xslt_version — Получает версию XSLT библиотеки
- xpath_eval_expression — Вычисляет XPath Location Path в переданной строке
- xpath_eval — Вычисляет XPath Location Path в переданной строке
- xpath_new_context — Создает новый xpath контекст
- xpath_register_ns_auto — Регистрация заданного пространства имен в определенном XPath контексте
- xpath_register_ns — Регистрирует пространство имен в переданном XPath контексте
- xptr_eval — Вычисляет XPtr Location Path в заданной строке
- xptr_new_context — Создает новый контекст XPath
Вернуться к: DOM XML (PHP 4)