Domdocument >add_root


DomDocument->add_root [не рекомендуется применять]

DomDocument->add_root [не рекомендуется применять] — добавляет root-узел.

Описание

resource DomDocument->add_root (string name)

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

Добавляет узел корневого элемента в dom-документ и возвращает этот новый узел. Имя элемента задаётся в передаваемом параметре.

Domdocument >add_root

(no version information, might be only in CVS)

DomDocument->add_root — Adds a root node [deprecated]

Description domelement DomDocument->add_root ( string name )



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

This function is EXPERIMENTAL . The behaviour of this function, the name of this function, and anything else documented about this function may change without notice in a future release of PHP. Use this function at your own risk.

Adds a root element node to a dom document and returns the new node. The element name is given in the passed parameter.

Example 1. Creating a simple HTML document header

FPublisher

Web-технологии: База знаний

Документация PHP

DomDocument->add_root

(No version information available, might be only in CVS)

DomDocument->add_root — Adds a root node [deprecated]

Описание


Adds a root element node to a dom document and returns the new node. The element name is given in the passed parameter.

Пример #1 Creating a simple HTML document header

= domxml_new_doc ( «1.0» );
$root = $doc -> add_root ( «html» );
$head = $root -> new_child ( «head» , «» );
$head -> new_child ( «title» , «Hier der Titel» );
echo htmlentities ( $doc -> dump_mem ());
?>

Domdocument >add_root

DomDocument->add_root [не рекомендуется применять] — добавляет root-узел.

Описание

resource DomDocument->add_root (string name)

Warning

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

Добавляет узел корневого элемента в dom-документ и возвращает этот новый узел. Имя элемента задаётся в передаваемом параметре.


Append DOMDocument корневого элемента к другому DOMDocument

У меня есть 2 «DomDocument» объекты — $ оригинал и $ дополнительных. То, что я хочу, чтобы принять все ребенок от $ дополнительных DOMDocument и добавить его в конце $ исходного документа.

Мой план состоял в том, чтобы взять корневой элемент $ дополнительного документа. Я пытался использовать:

Но я получаю сообщение об ошибке, что AppendChild ожидать объект DOMNode в качестве аргумента. Я пытался получить доступ к каждому из детей документа посредством:

Но он возвращает объект DOMElement. Можете ли вы посоветовать, как получить объект класса DOMNode? Самый удобный способ обеспечить эту операцию импорта?

$ Оригинальный XML выглядит следующим образом:

$ Дополнительный XML выглядит следующим образом:

То, что я хочу иметь:

DOMElement является DOMNode, DOMNode суперкласс. Вот несколько дочерних классов для элементов, текста и других узлов. Просто итерацию, импорт и добавить их.

Это работает с элементом документа тоже.

DOMDocument::importNode() создает копию предоставленного узла в контексте документа. Только узлы, принадлежащие к документу могут быть приложены к нему.


Domdocument >add_root

(no version information, might be only in CVS)

DomDocument->add_root — Adds a root node [deprecated]

Description resource DomDocument->add_root ( string name)

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

This function is EXPERIMENTAL . The behaviour of this function, the name of this function, and anything else documented about this function may change without notice in a future release of PHP. Use this function at your own risk.

Adds a root element node to a dom document and returns the new node. The element name is given in the passed parameter.

Example 1. Creating a simple HTML document header

Append DOMDocument корневого элемента к другому DOMDocument

У меня есть 2 «DomDocument» объекты — $ оригинал и $ дополнительных. То, что я хочу, чтобы принять все ребенок от $ дополнительных DOMDocument и добавить его в конце $ исходного документа.

Мой план состоял в том, чтобы взять корневой элемент $ дополнительного документа. Я пытался использовать:


Но я получаю сообщение об ошибке, что AppendChild ожидать объект DOMNode в качестве аргумента. Я пытался получить доступ к каждому из детей документа посредством:

Но он возвращает объект DOMElement. Можете ли вы посоветовать, как получить объект класса DOMNode? Самый удобный способ обеспечить эту операцию импорта?

$ Оригинальный XML выглядит следующим образом:

$ Дополнительный XML выглядит следующим образом:

То, что я хочу иметь:

DOMElement является DOMNode, DOMNode суперкласс. Вот несколько дочерних классов для элементов, текста и других узлов. Просто итерацию, импорт и добавить их.

Это работает с элементом документа тоже.

DOMDocument::importNode() создает копию предоставленного узла в контексте документа. Только узлы, принадлежащие к документу могут быть приложены к нему.

Domdocument >add_root

(no version information, might be only in CVS)


DomDocument->add_root [deprecated] — Adds a root node

Description resource DomDocument->add_root ( string name)

Warning

This function is EXPERIMENTAL . The behaviour of this function, the name of this function, and anything else documented about this function may change without notice in a future release of PHP. Use this function at your own risk.

Adds a root element node to a dom document and returns the new node. The element name is given in the passed parameter.

Example 1. Creating a simple HTML document header

add_root(«HTML»); $head = $root->new_child(«HEAD», «»); $head->new_child(«TITLE», «Hier der Titel»); echo htmlentities($doc->dump_mem()); ?>

Как изменить корень узла с методами DomDocument?

Как только изменить имя тега суперпользователя узла DOM?

В модели DOM-документа мы не можем изменить свойство documentElement в виде DOMElement объекта, а значит, нам нужно «восстановить» узел . Но как «восстановить» с childNodes собственностью?

Примечание: Я могу сделать это путем преобразования в строку с saveXML и кройки корень регулярными выражениями . Но это временное решение, а не DOM-решение.


Пробовал, но не работает, примеры PHP

PHP пример (не работает, но почему?):

appendChild($node) Причиной ошибки:

Из @can предложений (только указав ссылку) и моей интерпретацию плохого дома-DOMDocument-renamenode руководства .

Метод renameNode () вызвал ошибку,

Метод replaceChild () вызвал ошибку,

Как это не было на самом деле еще ответа, ошибка , которую вы получите о не найден из — за небольшой ошибки в renameNode() функции вы скопировали.

Вы , возможно , заметили его в последней строке тела функции: Это использование ->parentNode вместо ->ownerDocument . Как $node не был потомком документа, вы все- таки ошибка. И это тоже было неправильно полагать , что это должно быть. Вместо того, чтобы использовать родительский элемент для поиска ребенка там , чтобы заменить его;)

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

Во всяком случае, мой вариант здесь использует несколько иное переменное именование и более отчетливый о типах. Как, например, в PHP руководстве он пропускает тот вариант, который имеет дело с узлами пространств имен. Я еще не забронирован, что будет лучше, например, создавая дополнительные функции работы с ним, занимая пространство имен из узла для переименования или изменения имен явно в другой функции.


Во- первых, вы должны понимать , что DOMDocument это только иерархическая корень документа дерева. Это имя всегда #document . Вы хотите переименовать корневой элемент, который является $document->documentElement .

Если вы хотите скопировать узлы формирования документа в другой, вам нужно использовать importNode () функции: $document->importNode($nodeInAnotherDocument)

Редактировать:

renameNode() еще не реализована, так что вы должны сделать еще один корень, а просто заменить его со старым. Если вы используете DOMDocument->createElement() вам не нужно использовать importNode() на нем позже.

ISTM в своем подходе вы пытаетесь импортировать узлы из другого DOMDocument , так что вам нужно использовать importNode() метод:

Тем не менее, это гораздо проще, чтобы добавить дочерние узлы к новому родительскому элементу (таким образом, перемещая их), и заменить старый корень с этим родительским элементом:

Это изменение моего «Try-3» (см вопрос), и работает отлично !

Конечно, если вы покажете , как использовать DOMDocument :: renameNode (без ошибок!), То щедроты идут для вас!

Я надеюсь , что я ничего не хватает , но мне пришлось иметь подобную проблему и удалось решить с помощью использования DomDocument::replaceChild(. ) .

Что бросил меня изначально было то , что $doc->documentElement было только для чтения, но выше работал и , кажется, гораздо проще решение , если $newRoot была создана с тем же DomDocument , в противном случае вам нужно сделать importNode решение , как описано выше. Из вашего вопроса оказывается , что $newRoot может быть создан из того же самого $doc .

Дайте нам знать, если это работает для вас. Приветствия.


EDIT: Заметил в версии 20031129 , что DomDocument::$formatOutput , если он установлен, не форматирует $newRoot вывод , когда вы , наконец , позвонить $doc->saveXML()

Domdocument >add_root

DomDocument->add_root [не рекомендуется применять] — добавляет root-узел.

Описание

resource DomDocument->add_root (string name)

Warning

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

Добавляет узел корневого элемента в dom-документ и возвращает этот новый узел. Имя элемента задаётся в передаваемом параметре.

Пример 1. Создание шапки/header простого HTML-документа

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

Назад Оглавление Вперёд
DomAttribute->value Вверх DomDocument->create_attribute

© 2006-2012 Веб-мастер Борисов Виктор Александрович

Илон Маск рекомендует:  htmlspecialchars - Преобразует специальные символы в HTML сущности
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL