После трансформации уходят <, > и др.
От: SSS Молдова  
Дата: 28.09.01 05:53
Оценка:
<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" omit-xml-declaration="yes"/>
<xsl:template match="/">
<SCRIPT language="JavaScript">
<![CDATA[
function showhideCmlMenu(action)
{
cml_menu.style.display=cml_menu.style.display=='none'?'':'none';
if(event)
{
event.returnValue = false;
event.cancelBubble = true;
cml_menu.style.posLeft = document.body.scrollLeft + event.x — cml_menu.clientWidth/2 + 10;
cml_menu.style.posTop = document.body.scrollTop + event.y — cml_menu.clientHeight — 10;
}
}
]]>
</SCRIPT>






вот часть моего кода.
Проблема в том, что если я вставляю в тег <script>
символы <, >, то они кодируется в результате трансформации.
HTML разумеется получается непрасильный.
Как этого можно избежать?
Re: После трансформации уходят <, > и др.
От: Lexey Россия  
Дата: 28.09.01 07:58
Оценка:
Здравствуйте SSS, вы писали:

SSS><?xml version="1.0"?>

SSS><xsl:stylesheet
SSS> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
SSS> version="1.0">
SSS> <xsl:output method="xml" omit-xml-declaration="yes"/>
SSS> <xsl:template match="/">
SSS> <SCRIPT language="JavaScript">
SSS> <![CDATA[
SSS> function showhideCmlMenu(action)
SSS> {
SSS> cml_menu.style.display=cml_menu.style.display=='none'?'':'none';
SSS> if(event)
SSS> {
SSS> event.returnValue = false;
SSS> event.cancelBubble = true;
SSS> cml_menu.style.posLeft = document.body.scrollLeft + event.x — cml_menu.clientWidth/2 + 10;
SSS> cml_menu.style.posTop = document.body.scrollTop + event.y — cml_menu.clientHeight — 10;
SSS> }
SSS> }
SSS> ]]>
SSS> </SCRIPT>

SSS>вот часть моего кода.

SSS>Проблема в том, что если я вставляю в тег <script>
SSS>символы <, >, то они кодируется в результате трансформации.
SSS>HTML разумеется получается непрасильный.
SSS>Как этого можно избежать?

А зачем тебе <> в теге script? Внутри CDATA ничего коверкаться не должно.
Re[2]: После трансформации уходят <, > и др.
От: SSS Молдова  
Дата: 28.09.01 08:08
Оценка:
Здравствуйте Lexey, вы писали:


L>А зачем тебе <> в теге script? Внутри CDATA ничего коверкаться не должно.



Внутри CDATA в XML ничего и не коверковается.
Коверкается уже после трансформации этим XSL'ем кусок которого я привел.
Если вставить этот кусок в исходный XML, то все будет ОК, но это не то что мне нужно.
А зачем <> в scripte — ну например
if(x>1) alert("x>1!!");
Re[3]: После трансформации уходят <, > и др.
От: Lexey Россия  
Дата: 28.09.01 08:53
Оценка:
Здравствуйте SSS, вы писали:

SSS>Здравствуйте Lexey, вы писали:



L>>А зачем тебе <> в теге script? Внутри CDATA ничего коверкаться не должно.



SSS>Внутри CDATA в XML ничего и не коверковается.

SSS>Коверкается уже после трансформации этим XSL'ем кусок которого я привел.
SSS>Если вставить этот кусок в исходный XML, то все будет ОК, но это не то что мне нужно.
SSS>А зачем <> в scripte — ну например
if(x>>1) alert("x>1!!");

А, а я не заметил, что у тебя преобразование идет не в html, а в XML. Тебе оно реально нужно? Может стоит попробовать вставить еще одну CDATA внутрь первой или заменить все <> на &lt и &gt.
Re[4]: После трансформации уходят <, > и др.
От: SSS Молдова  
Дата: 28.09.01 09:04
Оценка:
Это

<xsl:output method="html" omit-xml-declaration="yes"/>

помогло, спасибо.

У меня до этого проблема была, того рода что при method="html", вставлялись теги <html><head><body> и т.д.
Эти теги мне как раз и не нужны были (я только часть странички генерирую, а не полностью), поэтому переключился на method="xml".
Re[5]: После трансформации уходят <, > и др.
От: Фатыхов Алексей Россия  
Дата: 28.09.01 10:34
Оценка:
Здравствуйте SSS, вы писали:

SSS>Это


SSS><xsl:output method="html" omit-xml-declaration="yes"/>


SSS>помогло, спасибо.


SSS>У меня до этого проблема была, того рода что при method="html", вставлялись теги <html><head><body> и т.д.

SSS>Эти теги мне как раз и не нужны были (я только часть странички генерирую, а не полностью), поэтому переключился на method="xml".

У меня была подобная проблема, я ее решил таким образом

<SCRIPT language="JavaScript">
<xsl:comment>
<![CDATA[
if( a > b ) c();
]]>
</xsl:comment>
</SCRIPT>



Удачи!
Re: После трансформации уходят <, > и др.
От: Merle Австрия http://rsdn.ru
Дата: 24.10.01 10:13
Оценка:
Здравствуйте SSS, Вы писали:

SSS>Проблема в том, что если я вставляю в тег <script>

SSS>символы <, >, то они кодируется в результате трансформации.
SSS>HTML разумеется получается непрасильный.
SSS>Как этого можно избежать?
Чтобы при выводе из CData ничего не коверкалось можно в XSL использовать
атрибут disable-output-escaping="yes"
Мы уже победили, просто это еще не так заметно...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.