Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как добавить функцию CDATA в XML документ?
 
 автор: sega_z   (25.03.2012 в 16:05)   письмо автору
 
 

Есть простой скрипт создания XML:


$xml=new DomDocument('1.0','UTF-8'); // Создаем документ
$sorts = $xml->appendChild($xml->createElement('sorts')); // Создаем корень документа
$sort = $sorts->appendChild($xml->createElement('sort')); // Создаем группу в корне документа
$name = $sort->appendChild($xml->createElement('name')); // Создаем подгруппу внутри группы
$name->appendChild($xml->createTextNode('Яблоко')); // Присваиваем значения подгруппам
$xml->formatOutput = true; // устанавливаем выходной формат документа в true
$xml->save('yandex.xml');   // сохраняем файл 


Покажите, пожалуйста на этом примере, как добавить CDATA к значению подгруппы?

Нужен такой результат:

<?xml version="1.0" encoding="UTF-8"?>
<sorts>
<sort>
<name><![CDATA[Яблоко]]></name>
</sort>
</sorts>

  Ответить  
 
 автор: sega_z   (26.03.2012 в 07:24)   письмо автору
 
   для: sega_z   (25.03.2012 в 16:05)
 

Что, неужели никто не знает???

  Ответить  
 
 автор: task   (26.03.2012 в 07:56)   письмо автору
 
   для: sega_z   (26.03.2012 в 07:24)
 

http://php.net/manual/ru/function.domdocument-create-cdata-section.php

  Ответить  
 
 автор: sega_z   (26.03.2012 в 08:04)   письмо автору
 
   для: task   (26.03.2012 в 07:56)
 

По моему что то не верно получилось:


$xml=new DomDocument('1.0','UTF-8'); // Создаем документ
$sorts = $xml->appendChild($xml->createElement('sorts')); // Создаем корень документа
$sort = $sorts->appendChild($xml->createElement('sort')); // Создаем группу в корне документа
$name = $sort->appendChild($xml->createElement('name')); // Создаем подгруппу внутри группы
$cdata = $name->create_cdata_section('Яблоко'); // Присваиваем значения подгруппам
$name->appendChild($cdata); // Присваиваем значения подгруппам
$xml->formatOutput = true; // устанавливаем выходной формат документа в true
$xml->save('fail.xml');   // сохраняем файл


Fatal error: Call to undefined method DOMElement::create_cdata_section()

  Ответить  
 
 автор: task   (26.03.2012 в 08:07)   письмо автору
 
   для: sega_z   (26.03.2012 в 08:04)
 

Никогда не занимался этим, но на php.net каждая функция имеет не только описание, но и примеры, так что, думаю, если потребутеся, то можно разобраться что и как делать.

  Ответить  
 
 автор: sega_z   (26.03.2012 в 08:10)   письмо автору
 
   для: task   (26.03.2012 в 08:07)
 

Дак я и посмотрел пример, но где то ошибка не могу понять что не так?

  Ответить  
 
 автор: task   (26.03.2012 в 08:23)   письмо автору
 
   для: sega_z   (26.03.2012 в 08:10)
 

А какая у вас версия РНР?

  Ответить  
 
 автор: sega_z   (26.03.2012 в 08:25)   письмо автору
 
   для: task   (26.03.2012 в 08:23)
 

X-Powered-By: PHP/5.2.17

  Ответить  
 
 автор: task   (26.03.2012 в 08:27)   письмо автору
 
   для: sega_z   (26.03.2012 в 08:25)
 

Я могу и ошибиться, но вроде бы (если мне память не изменяет), это расширение поставлялось с РНР4, а в РНР5 нет, и чтобы оно работало в полной мере, нужна установка libxml. Вроде бы так, не помню, сочинять не буду, почитайте доки.

  Ответить  
 
 автор: sega_z   (26.03.2012 в 08:30)   письмо автору
 
   для: task   (26.03.2012 в 08:27)
 

Но, а сам то код создания XML я верно составил, с использованием CDATA?

  Ответить  
 
 автор: task   (26.03.2012 в 08:39)   письмо автору
 
   для: sega_z   (26.03.2012 в 08:30)
 

Я уже говорил, что никогда не углублялся по данному вопросу, так что экспертом не могу быть. Чаще всего мне приходилось заниматься обратным - разбором xml.

  Ответить  
 
 автор: sega_z   (26.03.2012 в 08:46)   письмо автору
 
   для: task   (26.03.2012 в 08:39)
 

Хорошо, спасибо!

Надеюсь кто нибудь поможет мне разобраться ...

  Ответить  
 
 автор: sega_z   (27.03.2012 в 17:24)   письмо автору
 
   для: sega_z   (26.03.2012 в 08:46)
 

Но почему не работает функция create_cdata_section ()

Пробовал так:

$xml=new DomDocument('1.0','UTF-8'); // Создаем документ
$sorts = $xml->appendChild($xml->createElement('sorts')); // Создаем корень документа
$sort = $sorts->appendChild($xml->createElement('sort')); // Создаем группу в корне документа
$name->appendChild($sort ->createCDATASection('Яблоко'));  // Создаем подгруппу внутри группы
$xml->formatOutput = true; // устанавливаем выходной формат документа в true
$xml->save('fail.xml');   // сохраняем файл 


Выдает другую ошибку: Call to a member function appendChild() on a non-object

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования