Как стать автором
Обновить

Правильный textarea в XSLT с методом вывода XML

Время на прочтение2 мин
Количество просмотров2.6K
Наверное, многие, начинающие изучать XSLT, сталкивались с проблемой — textarea в режиме вывода XML выводится как одиночный закрытый тэг:
<textarea name="text" id="text"/>
, а не как пара тэгов с нулевым ребенком:
<textarea name="text" id="text"></textarea>

И постоянно, при встрече с данной проблемой, я пытался найти её решение в сети, но никак не мог найти — то ли запрос не так составлял поисковику, то ли никто не желал делиться информацией. В конце концов, решил найти способ сам для правильного, без сворачивания, вывода этого злополучного textarea. Конечно, можно вставить символы в этот тэг и вырезать их после трансформации ява-скриптом, либо сохранять трансформацию(если за нас это делает сервер, в моем случае — php) в переменную и строковой заменой вырезать лишнее. Но мы не ищем легких путей, не так ли?:-)
В общем, методом проб и ошибок появилось два способа обмануть парсер(чтобы он считал, что в тэге есть дети, хотя на самом деле их там нет).

Способ 1.
<textarea name="text" id="text"><xsl:text><![CDATA[]]></xsl:text></textarea>

Даем парсеру xsl:text и вложенный в него пустой CDATA и тот с радостью считает, что в textarea что-то находится.
На выходе имеем правильный textarea с пустым содержанием.

Способ 2.
<textarea name="text" id="text"><xsl:text>
</xsl:text></textarea>


Добавляем элемент xsl:text, внутри которого находится перенос строки на первой строке(приношу извинения на тавтологию) и нулевое число пробельных символов на второй строке перед закрывающим тегом.
Результат — аналогично способу 1, но, на мой взгляд, исходный код шаблона не совсем красив в данном случае.

Приведенная инфомация не претендует на уникальность, а носит вспомогательный характер подобным мне личностям, так и не смогшим составить правильный запрос поисковику
Теги:
Хабы:
Всего голосов 28: ↑25 и ↓3+22
Комментарии32

Публикации