RSS

Компьютерная терминология    1_9  A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z  .....  A  Б  В  Г  Д  Ж  З  И  К  Л  М  Н  О  П  Р  С  Т  У  Ф  Х  Ц  Ч

   
1. Введение
2. Инсталяция
3. Конфигурирование
4. Безопасность
5. Базовый синтаксис
6. Типы
7. Переменные
8. Константы
9. Выражения
10. Операции
11. Структуры управления
12. Функции
13. Классы и Объекты
14. Ссылки. Разъяснение.
15. Обработка Ошибок
16. Создание изображений и манипуляции с ними
17. HTTP-аутентификация в PHP
18. Куки
19. Обработка загрузки файлов
20. Использование удалённых файлов
21. Обслуживание соединений
22. Постоянные соединения с базами данных
23. Безопасный режим
24. Использование PHP из командной строки
Бесплатная консультация специалиста
Loading…
 
Учебник РНР
Назад Вперёд

XXV. Функции DOM XML

Введение

Предупреждение!

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, имена его функций и всё, что задокументировано, может измениться в последующих релизах РНР без предупреждения. Вы предупреждены и можете использовать это расширение только под вашу ответственность.

Расширение domxml может быть переопределено в версии PHP 4.3.0 в пользу лучшего соответствия стандарту DOM. В этом расширении всё ещё имеются некоторые старые функции, но они более не должны использоваться. Особо нужно исключить не-объектно-ориентированные функции.

Это расширение позволяет работать с XML-документами с помощью DOM API. Оно также предоставляет функцию domxml_xmltree() для включения всего XML-документа в дерево PHP-объектов. В настоящее время это дерево должно считаться read-only - вы можете его модифицировать, но это не имеет смысла, поскольку DomDocument_dump_mem() не может быть применена. Следовательно, если вы хотите читать XML-файл и записывать модифицированную его версию, используйте функции DomDocument_create_element(), DomDocument_create_text_node(), set_attribute(), etc. и в конце - DomDocument_dump_mem().

Требования

Это расширение использует GNOME xml-библиотеки. Загрузите и установите эту библиотеку. Вам понадобится как минимум версия libxml-2.2.7.

Установка

Это расширение доступно, если PHP был сконфигурирован с опцией --with-dom=[DIR].

Не рекомендуемые функции

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

Таблица 1. Не рекомендуемые функции и замены для них
Старая функция Новая функция
xmldoc domxml_open_mem()
xmldocfiel 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() с последующей DomNode_append_child()
DomDocument_dtd DomDocument_doctype()
DomDocument_root DomDocument_document_element()
DomDocument_children DomNode_child_nodes()
DomDocument_imported_node Замены нет.
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().

Предопределённые константы

Эти константы определены данным расширением и будут доступны только в том случае, если либо вкомпилированы в РНР, либо динамически загружены на этапе прогона.

Таблица 2. XML-константы
Константа Значение Описание
XML_ELEMENT_NODE (integer) 1 Узел является элементом
XML_ATTRIBUTE_NODE (integer) 2 Узел является атрибутом
XML_TEXT_NODE (integer) 3 Узел является блоком текста
XML_CDATA_SECTION_NODE(integer) 4  
XML_ENTITY_REF_NODE (integer) 5  
XML_ENTITY_NODE(integer) 6 Узел является мнемоникой вроде  
XML_PI_NODE (integer) 7 Узел является инструкцией процессинга
XML_COMMENT_NODE(integer) 8 Узел является комментарием
XML_DOCUMENT_NODE(integer) 9 Узел является документом
XML_DOCUMENT_TYPE_NODE (integer) 10  
XML_DOCUMENT_FRAG_NODE(integer) 11  
XML_NOTATION_NODE (integer) 12  
XML_GLOBAL_NAMESPACE(integer) 1  
XML_LOCAL_NAMESPACE (integer) 2  
XML_HTML_DOCUMENT_NODE(integer)    
XML_DTD_NODE (integer)    
XML_ELEMENT_DECL_NODE (integer)    
XML_ATTRIBUTE_DECL_NODE (integer)    
XML_ENTITY_DECL_NODE (integer)    
XML_NAMESPACE_DECL_NODE (integer)    
XML_ATTRIBUTE_CDATA (integer)    
XML_ATTRIBUTE_ID (integer)    
XML_ATTRIBUTE_IDREF (integer)    
XML_ATTRIBUTE_IDREFS (integer)    
XML_ATTRIBUTE_ENTITY (integer)    
XML_ATTRIBUTE_NMTOKEN (integer)    
XML_ATTRIBUTE_NMTOKENS (integer)    
XML_ATTRIBUTE_ENUMERATION (integer)    
XML_ATTRIBUTE_NOTATION (integer)    
XPATH_UNDEFINED (integer)    
XPATH_NODESET (integer)    
XPATH_BOOLEAN (integer)    
XPATH_NUMBER (integer)    
XPATH_STRING (integer)    
XPATH_POINT (integer)    
XPATH_RANGE (integer)    
XPATH_LOCATIONSET (integer)    
XPATH_USERS (integer)    
XPATH_NUMBER (integer)    

Классы

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

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

Этот модуль определяет несколько классов, которые перечислены - включая их методы - в следующих таблицах. Классы с эквивалентом в DOM Standard именуются DOMxxx.

Таблица 3. Список классов
Имя класса Родительский класс
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  

Таблица 4. Класс DomDocument (DomDocument : DomNode)
Имя метода Имя функции Примечание
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() не 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 стандарт

Таблица 5. Класс 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()  

Таблица 6. Класс 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-стандарте

Таблица 7. Класс DomAttribute (DomAttribute : DomNode)
Имя метода   Примечание
name DomAttribute_name()  
value DomAttribute_value()  
specified DomAttribute_specified()  

Таблица 8. Класс DomProcessingInstruction (DomProcessingInstruction : DomNode)
Имя метода Имя функции Примечание
target DomProcessingInstruction_target()  
data DomProcessingInstruction_data()  

Таблица 9. Класс Parser
<
Имя метода Имя функции Примечание
add_chunk Parser_add_chunk()  
end Parser_end()  

Таблица 10. Класс XPathContext
Имя метода Имя функции Примечание
eval XPathContext_eval()  
eval_expression XPathContext_eval_expression()  
register_ns XPathContext_register_ns()  

Таблица 11. Класс 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. Вместо повторения этой строки в каждом примере, она будет помещена в файл и включена в каждый пример. Этот include-файл показан в следующем разделе-примере. Вы можете также создать xml-документ и читать его с помощью DomDocument_open_file().

Пример 1. Include-файл example.inc с 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'>
  &amp;sp;
  <!-- комментарий -->
  <informaltable ID='findme' language='&amp;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 - возвращает имя атрибута
DomAttribute->specified - проверяет, специфицирован ли атрибут
DomAttribute->value - возвращает значение атрибута
DomDocument->add_root [не рекомендуется применять] - добавляет узел root
DomDocument->create_attribute - создаёт новый атрибут
DomDocument->create_cdata_section - создаёт новый узел cdata
DomDocument->create_comment - создаёт новый узел комментария
DomDocument->create_element - создаёт новый узел элемента
DomDocument->create_entity_reference -
DomDocument->create_processing_instruction - создаёт новый узел PI
DomDocument->create_text_node - создаёт новый текстовый узел
DomDocument->doctype - возвращает тип документа
DomDocument->document_element - возвращает узел элемента root
DomDocument->dump_file - выполняет дамп внутреннего дерева XML в файл
DomDocument->dump_mem - выполняет дамп внутреннего дерева XML в строку
DomDocument->get_element_by_id - ищет элемент с определённым id
DomDocument->get_elements_by_tagname -
DomDocument->html_dump_mem - выполняет дамп внутреннего дерева XML в строку как HTML
DomDocumentType->entities - возвращает список мнемоник
DomDocumentType->internal_subset - возвращает внутренний поднабор
DomDocumentType->name - возвращает имя типа документа
DomDocumentType->notations - возвращает список нотаций
DomDocumentType->public_id - возвращает public id типа документа
DomDocumentType->system_id - возвращает system id типа документа
DomElement->get_attribute_node - возвращает значение атрибута
DomElement->get_attribute - возвращает значение атрибута
DomElement->get_elements_by_tagname - добавляет новый атрибут
DomElement->has_attribute - добавляет новый атрибут
DomElement->remove_attribute - добавляет новый атрибут
DomElement->set_attribute_node - добавляет новый атрибут
DomElement->set_attribute - добавляет новый атрибут
DomElement->tagname - возвращает имя элемента
DomNode->append_child - добавляет нового потомка в конец потомков
DomNode->append_sibling - добавляет нового родственника в узел
DomNode->attributes - возвращает список атрибутов
DomNode->child_nodes - возвращает потомков узла
DomNode->clone_node - клонирует узел
DomNode->dump_node - дамп отдельного узла
DomNode->first_child - возвращает первого потомка узла
DomNode->get_content - получает содержимое узла
DomNode->has_attributess - проверяет, имеет ли узел атрибуты
DomNode->has_child_nodes - проверяет, имеет ли узел потомков
DomNode->insert_before - вставляет новый узел как потомка
DomNode->is_blank_node - проверяет, является ли узел чистым
DomNode->last_child - возвращает последнего потомка узла
DomNode->next_sibling - возвращает следующего родственника узла
DomNode->node_name - возвращает имя узла
DomNode->node_type - возвращает тип узла
DomNode->node_value - возвращает значение узла
DomNode->owner_document - возвращает документ, к которому этот узел принадлежит
DomNode->parent_node - возвращает предка узла
DomNode->prefix - возвращает префикс пространства имён узла
DomNode->previous_sibling - возвращает предыдущего родственника узла
DomNode->remove_child - удаляет потомка из списка потомков
DomNode->replace_child - замещает потомка
DomNode->replace_node - замещает узел
DomNode->set_content - устанавливает содержимое узла
DomNode->set_name - устанавливает имя узла
DomNode->unlink_node - удаляет узел
DomProcessingInstruction->data - возвращает данные pi-узла
DomProcessingInstruction->target - возвращает цель/target pi-узла
domxml_new_doc - создаёт новый пустой XML-документ
domxml_open_file - создаёт DOM-объект из XML-файл
domxml_open_mem - создаёт DOM-объект XML-документа
domxml_version - получает версию XML-библиотеки
domxml_xmltree - создаёт дерево PHP-объектов из XML-документа
xpath_eval_expression - вычисляет XPath Location Path в данной строке
xpath_eval - вычисляет XPath Location Path в данной строке
xpath_new_context - создаёт новый xpath-контекст
xptr_eval - вычисляет XPtr Location Path в данной строке
xptr_new_context - создаёт новый XPath Context

Назад Оглавление Вперёд
rewinddir Вверх DomAttribute->name

Windows 10 | Registry Windows 10 | Windows7: Общие настройки | Windows7: Реестр | Windows7: Реестр faq | Windows7: Настроки сети | Windows7: Безопасность | Windows7: Брандмауэр | Windows7: Режим совместимости | Windows7: Пароль администратора |  |  |   |  | Память | SDRAM | DDR2 | DDR3 | Quad Band Memory (QBM) | SRAM | FeRAM | Словарь терминов | Video | nVIDIA faq | ATI faq  | Интегрированное видео faq | TV tuners faq | Терминология | Форматы графических файлов | Работа с цифровым видео(faq) | Кодеки faq | DVD faq | DigitalVideo faq | Video faq (Архив) | CPU | HDD & Flash faq | Как уберечь винчестер | HDD faq | Cable faq | SCSI адаптеры & faq | SSD | Mainboard faq | Printer & Scaner | Горячая линия бесплатной юридической консультации | Благотворительность

На главную | Cookie policy | Sitemap