CrazyHacKeRs
Guest
Как создать CDATA
Нужно значение заключить в CDATA, и вставить в какой-нибудь нод. Какое решение может быть?
Нужно значение заключить в CDATA, и вставить в какой-нибудь нод. Какое решение может быть?
if ($xml=domxml_new_doc('1.0')) {
$elem=$xml->create_element('element');
$xml->append_child($elem);
$cdata = $xml->create_cdata_section('cdata text 12345');
$elem->append_child($cdata);
}
function make_node($parent, $name, $content)
{
$parent ->new_child(iconv('windows-1251', 'UTF-8',$name), iconv('windows-1251', 'UTF-8', str2xml($content)));
return $parent->last_child();
}
function make_cdata($parent, $name, $content)
{
$new = $parent ->new_child(iconv('windows-1251', 'UTF-8',$name), "");
$cdata = $parent->create_cdata_section($content);
$new->append_child($cdata);
return $parent->last_child();
}
<xsl:template match="DESCRIPTION" mode="main" >
<xsl:value-of select="." disable-output-escaping="yes"/>
</xsl:template>
<DESCRIPTION><![CDATA[xxx xxx ит д]]></DESCRIPTION>
xslt-процессор, имхо, ни о каких-таких CDATA и знать не знает...Может хитрым способом надо CDATA расскрывать?
а вот этой ш...тукой очень не рекомендовано пользоваться...disable-output-escaping="yes"
1. что сие значит? т.е. если CDATA-узлы не включаются в исходный XML, то все ОК? надо думать...Как комментирую вызов функции с CDATA, остальное нормально начинает отображаться:
Почему????? Насколько мне известно, это вполне нормальная директива.Originally posted by chameleon
а вот этой ш...тукой очень не рекомендовано пользоваться...
Да вот не совсем (An XSLT processor is not required to support disabling output escaping).Почему????? Насколько мне известно, это вполне нормальная директива.
А Саблот Вам говорит что не well-formedxml вполне валидный.
<xsl:output method="html" encoding="windows-1251"/>
Тогда действительно смотри на сущности:method="html"
make_cdata($xmlMainInfoDataNode, "DESCRIPTION","<h1>aaa</h1>");
естессно, в коде-то будет <h1>aaa...то на экране так и напишется <h1>aaa</h1>