HTML внутри XML

ryabcuk

Новичок
HTML внутри XML

Я программирую на php с помощью ajax. Как мне поместить HTML-скрипт внутрь xml-тега? Если я пишу:

PHP:
<?xml version="1.0" encoding="windows-1251" standalone="yes"?>	
<teg>
<![CDATA[     <div>Здесь куча других html-тегов</div>        ]]>
</teg>
То браузеру вместо HTML-символов "<",">" и др. передаются их HTML сущности и в результате браузере выводится сам HTML-код.

PHP:
<div>Здесь куча других html-тегов</div>
А мне нужно чтобы выводился форматируэмый текст. В jscript можно конечно потом с помощью strreplace() сделать соответствующие замены, но может можно как-то проще?
 

BRat

o_0
не в том дело .. ты эти теги с помощью createTextNode в исходный html добавляешь
 

ryabcuk

Новичок
Автор оригинала: BRat
не в том дело .. ты эти теги с помощью createTextNode в исходный html добавляешь
Если бы я создавал XML-документ с помощью java-скрипта, то я бы вызывал createTextNode. Но я XML-документ хочу создать в php с помощью простых echo.
 

dimagolov

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

BRat

o_0
Я думал ты этот xml обрабатываешь в JS, иначе зачем было упоминание о ajax'е

браузер не будет выводить XML-документ с обработанными HTML-тегами.
 

ryabcuk

Новичок
Вот как я использую ajax. При щелчке на кнопку с помощью ajax отправляется запрос серверу. php-скрипт считывает данные из БД и генерирует HTML-код. Но это не код новой страницы (т.к. тогда и ajax не нужен), а код маленького фрагмента страницы. Теперь я хочу (и у меня не получается) с помощью echo создать xml-документ, состоящий из одоного единственного тега в котором будет сгенерированный HTML-код фрагментика страницы. В браузере jscript получает от ajax этот xml-документ, вынимает из единственного тега код фрагмента странички и выводит на существующей странице.
Естетвенно я мог бы считать данные из БД, оформить их в виде xml-документа, затем с помощью jscript начинать проходить по всем его узлам и формировать строку, которую выведу на сайте. Но дело в том, что в php более мощные библиотеки для обработки данных и поэтому я выбрал первый метод. Кроме того, при мысли о сложных действиях на jscript меня начинает лихорадить :-(
 

ryabcuk

Новичок
Автор оригинала: BRat
так с помощью чего же ты их добавляешь?
Фрагмент страницы я добавляю с помощью java-скрипта из СОЗДАННОГО НА СЕРВЕРЕ xml-документа. Т.е. CreateTextNode мне уже вызывать не нужно. Но я не могу из сервера передать html-текст т.к. символы <,> и др. заменяются на html-сущности. В результате при выводе кусочка странички у меня выводится не отформатированный текст, а HTML-текст (как в текстовом редакторе).
Наверное что-то неясно обьясняю, но не могу придумать как объяснить проще.

-~{}~ 19.02.07 18:34:

Автор оригинала: BRat
так с помощью чего же ты их добавляешь?
var str= ... //Здесь ajax мне вернул html-код
document.getElementById('left_div').innerHTML=str; //Выводим в браузере.

-~{}~ 19.02.07 18:42:

Вы молчите потому, что неясно написал, не понимаете чего мне нужно или не знаете в чём дело?
Точнее всё так:

var str= ... //Здесь ajax мне вернул xml-документ и я из единственного тега "вынял" html-код
document.getElementById('left_div').innerHTML=str; //Вывожу html-код в браузере.
 

ryabcuk

Новичок
Автор оригинала: BRat
ryabcuk
alert(str) сделай, что у тебя там?
Текст с HTML-сущностями. Я сущности java-скриптом заменил на символы и заработало. Но может можно проще?
 

BRat

o_0
ryabcuk
там _не_должно_ быть никаких сущностей. Где-то на сервере ты заменяешь html-теги на сущности. Ищи где у тебя вызов htmlspecialchars есть, и убирай его
 

ryabcuk

Новичок
Автор оригинала: BRat
ryabcuk
там _не_должно_ быть никаких сущностей. Где-то на сервере ты заменяешь html-теги на сущности. Ищи где у тебя вызов htmlspecialchars есть, и убирай его
ОЙ, точно! Извините, заработался. Модуль тот писал не я, но был уверен что там всё нормально. Спасибо большое, т.к. хоть и ерунда, но без поджсказки долго бы ещё сидел. А так всего 4 часа потратил :) Спасибо за потраченное время!!!
 
Сверху