PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Kubert
Отправлено: 12 Июля, 2011 - 15:34:02
Post Id



Частый гость


Покинул форум
Сообщений всего: 186
Дата рег-ции: Февр. 2010  


Помог: 3 раз(а)




Как вставить DocumentType в XML файл с помощью PHP???
 
 Top
grefon
Отправлено: 12 Июля, 2011 - 15:37:30
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010  


Помог: 32 раз(а)




CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2.    header('Content-Type: text/xml; charset=utf-8');
  3. ?>
  4. <?xml version="1.0" encoding="utf-8"?>


-----
____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
 
 Top
Kubert
Отправлено: 12 Июля, 2011 - 15:40:41
Post Id



Частый гость


Покинул форум
Сообщений всего: 186
Дата рег-ции: Февр. 2010  


Помог: 3 раз(а)




grefon пишет:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2.    header('Content-Type: text/xml; charset=utf-8');
  3. ?>
  4. <?xml version="1.0" encoding="utf-8"?>


Немного не то.
У меня есть два файла. Первый PHP файл генерит второй XML файл.
Как записать именно в XML строчку такую:
<!DOCTYPE yml_catalog SYSTEM "shops.dtd">

У меня получается ее записать только в таком виде:
&lt;!DOCTYPE yml_catalog SYSTEM "shops.dtd" &gt;

(Отредактировано автором: 12 Июля, 2011 - 15:43:49)

 
 Top
grefon
Отправлено: 12 Июля, 2011 - 15:47:42
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010  


Помог: 32 раз(а)




Честно говоря ничего не понял, что Вы хотите и в чем проблема.

PHP:
скопировать код в буфер обмена
  1. $str = '<!DOCTYPE yml_catalog SYSTEM "shops.dtd">';
  2. file_put_contents('file.xml',$str);
  3.  


-----
____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
 
 Top
Kubert
Отправлено: 12 Июля, 2011 - 15:54:12
Post Id



Частый гость


Покинул форум
Сообщений всего: 186
Дата рег-ции: Февр. 2010  


Помог: 3 раз(а)




<?php
$doc = new DOMDocument('1.0');
$doc -> encoding = 'windows-1251';
$doc -> formatOutput = true ;

$yml_catalog = $doc -> createElement('yml_catalog');
$yml_catalog = $doc -> appendChild($yml_catalog);
.......
.......
.......

$doc->save("yandex_market.xml");
?>

вот. И мне нужно в этот файл yandex_market.xml вставить строку <!DOCTYPE yml_catalog SYSTEM "shops.dtd">
(Добавление)
НУ пАмагите!!!!
 
 Top
Мелкий Супермодератор
Отправлено: 12 Июля, 2011 - 17:03:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 11883
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 614 раз(а)




0) file_get_contents
1) http://php.su/functions/?page=cat_string
2) file_put_contents

XML не бинарник, его не обязательно редактировать только классами, обрабатывающими XML. Хотя и бинарник можно редактировать всё теми же функциями.


-----
PostgreSQL DBA
 
 Top
grefon
Отправлено: 12 Июля, 2011 - 17:10:11
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010  


Помог: 32 раз(а)




Сколько не сталкивался с DOMDocument, всегда натыкался на какие-нибудь баги, по этому всегда пользуюсь стандартными функциями.


-----
____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
 
 Top
Kubert
Отправлено: 12 Июля, 2011 - 17:49:11
Post Id



Частый гость


Покинул форум
Сообщений всего: 186
Дата рег-ции: Февр. 2010  


Помог: 3 раз(а)




Как же поступить? Не могу в интернете найти решения...
Написал уже в Яндекс, так там девушки которые ничего не знают...
Может есть альтернатива?
 
 Top
grefon
Отправлено: 12 Июля, 2011 - 17:54:09
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010  


Помог: 32 раз(а)




Так Вам же уже и я и Мелкий сказали альтернативу. Пользуйтесь стандартными функциями обработки строки.


-----
____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
 
 Top
Kubert
Отправлено: 12 Июля, 2011 - 18:05:48
Post Id



Частый гость


Покинул форум
Сообщений всего: 186
Дата рег-ции: Февр. 2010  


Помог: 3 раз(а)




grefon пишет:
Так Вам же уже и я и Мелкий сказали альтернативу. Пользуйтесь стандартными функциями обработки строки.


Я воспользовался. Все равно конвертирует при выводе "<" и ">" в "&lt;" и "&gt;"

http://www[dot]7-tur[dot]com/yandex_market[dot]xml

(Отредактировано автором: 12 Июля, 2011 - 18:10:08)

 
 Top
grefon
Отправлено: 12 Июля, 2011 - 19:05:00
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010  


Помог: 32 раз(а)




Kubert, Вы супер! Радость

У вас браузер ошибку выдает, а Вы увидели при ошибке "неправильное" отображение скобок и целую тему развернули. Сделайте нормальный xml и все у Вас будет работать. А "<" и ">" отображаются нормально, просто Вам они в отчете об ошибке предоставляются в виде "&lt;" и "&gt;". Просмотрите исходный код.


-----
____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
 
 Top
Kubert
Отправлено: 13 Июля, 2011 - 09:47:15
Post Id



Частый гость


Покинул форум
Сообщений всего: 186
Дата рег-ции: Февр. 2010  


Помог: 3 раз(а)




grefon пишет:
Kubert, Вы супер! Радость

У вас браузер ошибку выдает, а Вы увидели при ошибке "неправильное" отображение скобок и целую тему развернули. Сделайте нормальный xml и все у Вас будет работать. А "<" и ">" отображаются нормально, просто Вам они в отчете об ошибке предоставляются в виде "&lt;" и "&gt;". Просмотрите исходный код.


И в исходном коде было тоже самое, я естественно открывал и смотрел исходный код. Но! Проблема решена! И для тех кто столкнется с подобной проблемой выкладываю решение. Спасибо Google... Верней otvety.google

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $implementation = new DOMImplementation();
  3. $dtd = $implementation->createDocumentType('yml_catalog', null, 'shops.dtd');
  4. $doc = $implementation->createDocument('', '', $dtd);
  5. $doc -> encoding = 'windows-1251';
  6. $doc -> formatOutput = true ;
  7.  
  8. $books = $doc -> createElement('books');
  9. $books = $doc -> appendChild($books);
  10. $book = $doc -> createElement('book');
  11. $book = $books -> appendChild($book);
  12. $name = $doc -> createTextNode('name book');
  13. $name = $book -> appendChild($name);
  14.  
  15. echo $doc->save("file.xml");
  16. $doc->xmlVersion="1.0";
  17.  
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB