Как вставить
В таблицу стилей XSLT я продолжаю получать эту ошибку:
Ошибка анализа XML: undefined entity
По сути, я хочу, чтобы в шаблоне XSLT не был разбит пробел.
Как вставить
В таблицу стилей XSLT я продолжаю получать эту ошибку:
Ошибка анализа XML: undefined entity
По сути, я хочу, чтобы в шаблоне XSLT не был разбит пробел.
Попробуйте вместо этого использовать объект  
.
Подробнее о том, почему
не работает и другие параметры здесь.
Можно также сделать следующее:
<xsl:text disable-output-escaping="yes"><![CDATA[ ]]></xsl:text>
 
работает очень хорошо. Тем не менее, он отображает один из этих странных символов в кодировке ANSI. <xsl:text>
работал лучше для меня.
<xsl:text> </xsl:text>
Используйте этот
<xsl:text disable-output-escaping="yes">&</xsl:text>nbsp;
edit: Downvoters должны, вероятно, проверить, что это работает в первую очередь (это и является наиболее общим решением проблемы.)
Возможно, вы захотите добавить определение для этого объекта в начале файла (ниже объявления xml):
<!DOCTYPE stylesheet [
<!ENTITY nbsp " " >
]>
Также вы можете добавить еще такие объекты, как Ntilde, Aacute и т.д.
В дополнение к victor hugo answer можно получить все известные символьные ссылки, законные в XSLT файле, например:
<!DOCTYPE stylesheet [
<!ENTITY % w3centities-f PUBLIC "-//W3C//ENTITIES Combined Set//EN//XML"
"http://www.w3.org/2003/entities/2007/w3centities-f.ent">
%w3centities-f;
]>
...
<xsl:text>& –</xsl:text>
Существует также определенная разница в результате этого подхода по сравнению с <xsl:text disable-output-escaping="yes">
one. Последний будет генерировать строковые литералы, такие как
для всех видов вывода, даже для <xsl:output method="text">
, и это может отличаться от того, что вы можете пожелать... Напротив, получение сущностей, определенных для шаблона XSLT, через <!DOCTYPE ... <!ENTITY ...
всегда будет выводить результат, соответствующий вашим настройкам xsl:output
.
И при включении всех ссылок на символы, может быть разумным использовать локальный сущностный преобразователь, чтобы механизм XSLT не извлекал определения сущности символов из Интернета. JAXP или явным пользователям Xalan-J может потребоваться исправление для Xalan-J, чтобы правильно использовать преобразователь. Смотрите мой блог XSLT, сущности, Java, Xalan... для загрузки папок и комментариев.
Когда вы используете следующее (без disable-output-escaping
!), вы получите одно неразрывное пространство:
<xsl:text> </xsl:text>
Таблицы стилей XSLT должны быть хорошо сформированными XML. Поскольку " "
не является одним из пяти предопределенных XML-объектов, он не может быть непосредственно включен в таблицу стилей.
Поэтому возвращение к вашему решению " "
- идеальная замена " "
, которую вы должны использовать.
Пример:
<xsl:value-of select="$txtFName"/> <xsl:value-of select="$txtLName"/>
вы также можете использовать:
<xsl:value-of select="'&nbsp'"/>
помните усилитель после и/или вы получите сообщение об ошибке
Я пытался отображать границы в пустой ячейке в таблице HTML. Мой старый трюк использования неразрывного пространства в пустых ячейках не работал с xslt. Я использовал разрывы строк с тем же эффектом. Я упоминаю об этом просто в том случае, если причина, по которой вы пытались использовать неразрывное пространство, заключалась в том, чтобы предоставить некоторый контент в "пустую" ячейку таблицы, чтобы включить границы ячеек.
<br/>