Вложенные кавычки/апострофы и проблемы с &
От: vsug1024  
Дата: 02.10.06 13:44
Оценка:
Выполняется XML -> (XSLT — Xalan) -> HTML.

Потребовалось в HTML реализовать 3-кратно вложенные кавычки/апострофы. Для этого использовалась замена символа "кавычки" на "
Но, чтобы " не был заменен на стадии XSLT-преобразования в xsl указывалась строка " , которая на стадии XSLT превращалась в "
Проблема в том, что это "превращение" происходит не всегда:


<xsl:template match="/">
    <xsl:call-template name="t1">
        <xsl:with-param name="xxx" select='"&amp;quot;ON&amp;quot;"'/>
    </xsl:call-template>
</xsl:template>
   
<xsl:template name="t1">
    <xsl:param name="xxx"/>

    <xsl:value-of select="$xxx" disable-output-escaping="yes"/>
        
    <input type="text" size="10" maxlength="10" value="abc">
        <xsl:attribute name="name"><xsl:value-of select="$xxx" disable-output-escaping="yes"/></xsl:attribute>
    </input>
</xsl:template>


Вывод будет таким

&quot;ON&quot;
<input value="abc" maxlength="10" size="10" type="text" name="&amp;quot;ON&amp;quot;">


т.е. во втором случае случае остался &amp;
Как сделать так, чтобы во втором случае тоже получилось
... name="&quot;ON&quot;"
?
Re: Вложенные кавычки/апострофы и проблемы с &amp;
От: Othello  
Дата: 02.10.06 23:21
Оценка:
Попробуйте так:
<xsl:attribute name="name"><![CDATA["ON"]]></xsl:attribute>
Re[2]: Вложенные кавычки/апострофы и проблемы с &amp;
От: roll-ik  
Дата: 03.10.06 05:14
Оценка:
Здравствуйте, Othello, Вы писали:

O>Попробуйте так:

O>
O><xsl:attribute name="name"><![CDATA["ON"]]></xsl:attribute>
O>


Спасибо, во втором случае получилось теперь так как нужно! Но теперь в первом случае получается просто "ON":
"ON"
<input value="abc" maxlength="10" size="10" type="text" name="&quot;ON&quot;">


Мне просто нужно, чтобы одна и та же переменная (см. первое сообщение) выводилась в двух случаях (в атрибуте и не в атрибуте) одинаково. Отчего вообще возникают различия в выводе?
Re[3]: Вложенные кавычки/апострофы и проблемы с &amp;
От: kan Великобритания  
Дата: 03.10.06 12:48
Оценка:
roll-ik wrote:

> Мне просто нужно, чтобы одна и та же переменная (см. первое сообщение)

> выводилась в двух случаях (в атрибуте и не в атрибуте) одинаково. Отчего
> вообще возникают различия в выводе?
С точки зрения HTML/XML конструкции
"ON"
<input value="abc" maxlength="10" size="10" type="text" name="&quot;ON&quot;">

&quot;ON&quot;
<input value="abc" maxlength="10" size="10" type="text" name="&quot;ON&quot;">

и даже
"ON&quot;
<input value="abc" maxlength="10" size="10" type="text" name='&quot;ON"'>

абсолютно эквивалентны. Если какой-то софт различает — это бага этого софта.

ЗЫЖ Очень не рекомендуется использовать disable-output-escaping="yes".
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[4]: Вложенные кавычки/апострофы и проблемы с &amp;
От: roll-ik  
Дата: 05.10.06 06:38
Оценка:
Здравствуйте, kan, Вы писали:

kan>roll-ik wrote:


>> ... Отчего вообще возникают различия в выводе?

kan>С точки зрения HTML/XML конструкции
kan>[code]
kan>"ON"...

Спасибо всем!!! Разобрался.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.