Ссылки '
разрешаются анализатором XML, который анализирует ваш XSLT. Ваш XSLT-процессор никогда их не видит. То, что видит ваш XSLT-процессор:
concat('url('', $imgSrc, '')')
Что недопустимо, потому что запятые не попадают в нужное место для разделения аргументов. Однако это может работать для вас, в зависимости от сериализатора , который использует ваш процессор XSLT:
concat("url('", $imgSrc, "')")
Это заключает аргументы в двойные кавычки, чтобы ваши одинарные кавычки не конфликтовали. Процессор XSLT должен увидеть это:
concat("url('", $imgSrc, "')")
Другой вариант - определить переменную:
<xsl:variable name="apos" select='"'"'/>
Что можно использовать так:
concat('url(', $apos, $imgSrc, $apos, ')')
Подробнее здесь :
Когда вы применяете таблицу стилей XSLT к
документ, если объекты объявлены и
упоминается в этом документе, ваш XSLT
процессор даже не узнает о них.
XSLT-процессор оставляет работу
парсинг входного документа (чтение его
и выяснить, что к чему)
Анализатор XML; вот почему
установка некоторых процессоров XSLT
требует от вас идентифицировать XML
Парсер вы хотите их использовать. (Другие
включить синтаксический анализатор XML как часть их
установка.) Важная часть
Работа парсера XML состоит в том, чтобы решить все
ссылки на сущности, так что если
DTD входного документа объявляет cpdate
юридическое лицо, имеющее значение "2001" и
документ имеет строку "авторское право"
& Cpdate; все права защищены ", XML
парсер пройдет по текстовому узлу
"Copyright 2001 Все права защищены"
поместить в исходное дерево XSLT.