XSLT. Вставить nbsp в ячейку таблицы, если xml-элемент пустой

XtremallyPurpur

Новичок
XSLT. Вставить nbsp в ячейку таблицы, если xml-элемент пустой

Добрый день.
Есть xml:

[ЦВЕТОМ=blue]
<row>
<name_op></name_op>
<num_route>43</num_route>
<performer></performer>
</row>
<row>
<name_op>Что-то</name_op>
.
.
.
</row>
[/ЦВЕТОМ]


Т.е. В элементах name_op, num_route и т.д. могут быть пустыми.

Пытался так:

[ЦВЕТОМ=blue]
<td>
<xsl:choose>
<xsl:when test="name_op">
<xsl:value-of select="name_op"/>
</xsl:when>
<xsl:eek:therwise>&#xA;</xsl:eek:therwise>
</xsl:choose>
</td>
[/ЦВЕТОМ]


Но такая кострукция проверяет, есть ли элемент вообще, он-то есть, но пустой. Как проверить пустой ли элемент? И если пустой вставить в таблицу nbsp.
 

XtremallyPurpur

Новичок
bzik
спасибо,
2All
работает вот так:
PHP:
<td>
   <xsl:choose>
       <xsl:when test="name_op!=''">
           <xsl:value-of select="name_op"/>
       </xsl:when>
       <xsl:when test="name_op=''">
            <xsl:text>&#160;</xsl:text>
        </xsl:when>
   </xsl:choose>
</td>
 

SergeR

Новичок
Когда кодировка выходного документа koi8-r, мне использование &amp;#160; совсем не нравится.

Я делаю так:
в начале объявляю переменную nbsp:
Код:
<xsl:variable name="nbsp"><!CDATA[&amp;nbsp;]]></xsl:variable>
а потом, когда требуется вставляю ее ;-)
Код:
<xsl:value-of select="$nbsp" disable-output-escaping="yes" />
и в выходном html-документе все смотрится как надо ;-)
 

slach

Новичок
SergeR... ну ты больной =)

делал бы тогда уж
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp "&#160;">
<!ENTITY raquo "&#0187;">
<!ENTITY laquo "&#0171;">
]
>


для cp1251 и для koi8 только код поменять нада
 

SergeR

Новичок
Тогда в выходном документе опять получатся Unicode-символы. А хочется именно html-ную сущность. :)
 
Сверху