вопрос по $xml->createTextNode

givi

Guest
вопрос по $xml->createTextNode

Есть два примера кода, наглядно отражающих суть вопроса:
PHP:
$xml=new DomDocument("1.0","utf-8");
		$doc=$xml->createElement("doc");
		$doc->appendChild($xml->createTextNode("<h1>test</h1>"));
		$xml->appendChild($doc);
		echo $xml->saveXml();
на выходе получаем:
PHP:
<doc>&lt;h1&gt;test&lt;/h1&gt;</doc>
,
если же загружать xml из строки:
PHP:
$xml->loadXML("<doc><h1>test</h1></doc>");
		echo $xml->saveXml();
на выходе получаем желаемый нормальный xml, т.е. символы <,> не заменяются на
PHP:
&lt;,&gt;
и прочие.
Как избежать этой замены при создании текстовой ноды через createTextNode?
 

crocodile2u

http://vbolshov.org.ru
Text - он на то и Text, чтобы не содержать ничего, кроме текста.

И вообще, сдается мне, ты смешиваешь две различные задачи - хранения данных и их отображения.

Оформляй данные с пом. XSLT.
 

givi

Guest
Так собственно xml и формирую для обработки xslt шаблоном!:)

а если createTextNode сдесь не причем, то как в xml вставить кусок правильного html/xhtml (кусок прогнан через tidy и храниться в базе)???
 

slach

Новичок
createTextNode - тут явно непричем

в xslt есть disable-output-escaping
читай про него
 

chameleon

Новичок
то как в xml вставить кусок правильного html/xhtml
если документ пропущен через Tidy, то вероятно это правильный xml. Первоначально десериализуется в отдельный DOMDocument а затем вставляется в общий через DOMDocument->importNode, а то что ты написал с TextNode в первом посте полная чушь, извини.
P.S. ах да и slach'a не слушай, он не должен был так говорить :)..
 

alienzzzz

интернет бизнес
Все хорошо, но если например после загрузки XSL нужно одно слово поменять на другое !
например, заголовки сделать Жирными, и это нельзя сделать сразу в XSL
_____
Как заставить делатся disable-output-escaping при createTextNode ?
_____
Мне бы тоже это не помешало очень
 

slach

Новичок
2alienzz
1)createTextNode это DOM
а disable-output-escaping это XSLT
это абсолютно разные вещи, не путайте их

2) повторю еще раз если хочется вставить ДИНАМИЧЕСКИ в DOM документ кусок правильного XHTML, то создай новый документ сделай loadXML из строки, потом в основном документе сделай $основной_DOMDocument->importNode($новый_DOMDocument->documentElement,true);
 
Сверху