Intereting Posts
Абстрактные константы в PHP. Заставьте дочерний класс определить константу Вызов PHP-документа с SSH включает в себя получение переменной Php, как идти с дня года до настоящего времени и наоборот Выберите случайные строки из таблицы mysql Сообщение о успехе, не отображающее использование jQuery ajax Удалить элемент из многомерного массива на основе значения PHP, удаляющий html-теги из строки php, если число нечетное или четное Вызовите внешнюю функцию API от контроллера, LARAVEL 4 Почему этот код делает мой экран пустым в admin, когда я помещаю его в functions.php? Laravel – Изменить подключение к базе данных для определенного URL-адреса? Предупреждение: mysql_query () ожидает, что параметр 1 будет строкой, Как использовать PHP для больших проектов? Различные типы пользователей, перенаправленные на одну страницу (index.php) с различным контентом Вычисление отношения размера изображения для изменения размера

Как добавить XML-строку в объект DOMDocument?

Создание объекта DOMDocument:

$getToken = '<getToken>...</getToken>'; $getToken_objeto = new DOMDocument("1.0", "UTF-8"); $getToken_objeto -> loadXML($getToken); 

Попытка добавить XML-строку (подпись) в созданный выше DOMDocument:

 $Signature = '<Signature>...</Signature>'; $Signature_objeto = new DOMDocument("1.0", "UTF-8"); $Signature_objeto -> loadXML($Signature); $Signature_nodeList = $Signature_objeto -> getElementsByTagName("Signature"); $Signature_node = $Signature_nodeList -> item(0); $getToken_objeto -> importNode($Signature_node, true); $getToken_objeto -> appendChild($Signature_node); 

Я получаю 2 ошибки:

Неустранимая ошибка: исключить исключение «DOMException» с сообщением «Неверная ошибка документа» в C: … DOMException: ошибка неправильного документа в C: …

Кажется, просто решить, но я совершенно неопытен, используя расширение PHP DOM.

Заранее спасибо.

Related of "Как добавить XML-строку в объект DOMDocument?"

Вы пытаетесь добавить исходный узел, а не импортированный.

 $Signature_node = $getToken_objeto->importNode( $Signature_nodeList->item(0), true ); 

Вы пытаетесь добавить узел в документ, но документ XML может содержать только один элемент документа, и он уже имеет его. Вы можете добавить его к элементу документа:

 $getToken_objeto->documentElement->appendChild($Signature_node); 

Но PHP может загружать фрагменты XML непосредственно в DOMDocumentFragment.

 $xml = '<getToken>...</getToken>'; $fragmentXml = '<Signature>...</Signature>'; $dom = new DOMDocument(); $dom->loadXML($xml); $xpath = new DOMXpath($dom); $fragment = $dom->createDocumentFragment(); $fragment->appendXml($fragmentXml); $xpath ->evaluate('//getToken') ->item(0) ->appendChild($fragment); echo $dom->saveXml();