![]() |
Модераторы: diadiavova |
![]() ![]() ![]() |
|
Rino |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 29.8.2005 Репутация: нет Всего: нет |
есть код
строчка contentM[<xsl:value-of select="imagesOrder" />]='<xsl:copy-of select="text" />' кладет html текст в переменную яваскрипта. возникает проблема с переносом строк. (xsl форматирует код и вставляет переносы). например таблица выводится вот в таком виде contentM[1]='<text><table><tbody> <tr> <td>Демонтаж старой электропроводки</td> <td>35 руб.</td> <td>шт</td> </tr> <tr> <td>монтаж и подключение автомата</td> <td>400 руб.</td> <td>шт</td> </tr> <tr> <td>Монтаж и подключение входного звонка</td> <td>500 руб.</td> <td>шт</td> </tr> <tr> <td>Монтаж и подключение кассетного светильника и бра</td> <td>500 руб.</td> <td>шт</td> </tr> <tr> <td>Монтаж и подключение люстры</td> <td>700 руб.</td> <td>шт</td> </tr> <tr> <td>Монтаж и подключение электроточки</td> <td>300 руб.</td> <td>шт</td> </tr> <tr> <td>Монтаж кабель-каналов</td> <td>90 руб.</td> <td>м2</td> </tr> <tr> <td>Монтаж канального вентилятора</td> <td>500 руб.</td> <td>шт</td> </tr> </tbody></table></text>'; т.е. из-за переноса строк получается проблема с содержанием переменной. Вопрос - как заставить xsl не вставлять перенос строк? Пробовал использовать CDATA, но не получилось. Подскажите, горит. |
|||
|
||||
jsa |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 704 Регистрация: 19.1.2006 Где: Новосибирск Репутация: 3 Всего: 20 |
попробуй или даже так
Добавлено @ 06:36 можно еще посмотреть в сторону <xsl:strip-space> Это сообщение отредактировал(а) jsa - 24.9.2008, 06:40 -------------------- Все мы, на перине с песней, строим небо на земле © Ю. Шевчук |
||||||
|
|||||||
Rino |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 29.8.2005 Репутация: нет Всего: нет |
пока нашел такой выход:
<script>contentM[<xsl:value-of select="imagesOrder" />]='<xsl:value-of select="normalize-space(text)" />';</script> При этом главное оберунуть text в <![CDATA[какой то текст, с тегами, пробелами и переходами строк]]> но делаю это на уровне xml, не очень удобно. Может все таки кто-нить подскажет еще какой-нить вариант. |
|||
|
||||
jsa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 704 Регистрация: 19.1.2006 Где: Новосибирск Репутация: 3 Всего: 20 |
<xsl:strip-space> не подходит?
-------------------- Все мы, на перине с песней, строим небо на земле © Ю. Шевчук |
|||
|
||||
Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
Rino, вместо <xsl:copy-of select="."/>, попробуй <xsl:apply-templates select="."/>. Может поможет
![]() -------------------- менеджер по кодеврайтингу ![]() |
|||
|
||||
Rino |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 29.8.2005 Репутация: нет Всего: нет |
Bulat, <xsl:apply-templates select="text"/> используя с <![CDATA[какой то текст, с тегами, пробелами и переходами строк]]> переносит строки, без сдата - режит html теги.
jsa, <xsl:strip-space> пробовал, но что не помогло. Задача была не только убрать переводы строк но и сохранить HTML. |
|||
|
||||
Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
Давай с самого начала, зачем ты в яваскрипт кидаешь html-текст?? Мне кажется, что все можно сделать проще
![]() -------------------- менеджер по кодеврайтингу ![]() |
|||
|
||||
Rino |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 29.8.2005 Репутация: нет Всего: нет |
Bulat, да это не я его туда кидаю. Человек не смог решить эту проблему, попросил помочь, я вроде бы нашел решение.
Это для галерии делается, там меняется текст и картинка. посмотри вот здесь http://santehmaster.ru/service/repair/ |
|||
|
||||
Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
Rino, дело в том, что
Данные задачи не решаются на уровне xslt. XSLT - это лишь шаблоны для разметки. Максимум, можно что-то скрыть/показать из того, что у нас выходе. ![]() ![]() -------------------- менеджер по кодеврайтингу ![]() |
|||
|
||||
Cycle |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 1.12.2007 Репутация: нет Всего: 3 |
Rino, сформулируй пожалуйста, что именно тебе надо. Потому что сам по себе xsl:copy-of данные не переформатирует.
Вот тестировал в msxsl: Исходный xml-файл
xsl-схема
результат
Как видешь, лишние переносы строк не появились. Может тебе лечше попробовать переделать свой код без скрипта? |
||||||
|
|||||||
Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
Cycle, Скорее всего твой вариант отличается тем, что у тебя изначально в коде нет переноса строк(символов табуляции). XSLT - не может урезать символы табуляции, насколько мне известно.
![]() -------------------- менеджер по кодеврайтингу ![]() |
|||
|
||||
Rino |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 29.8.2005 Репутация: нет Всего: нет |
Ребят у меня в тексте, который вставляет copy-of не было никаких переносов, он был вытянут в строчку!
после вставки, он появлялся в коду страницы в отформатированном виде. и все бы хорошо, но мне надо было запихнуть его в СТРОКУ, т.е. обрамить кавычками с двух сторон. соотвественно один переход строки и кавычки обрывались. яваскрипт ругался на незаконченную строку. вот. |
|||
|
||||
jsa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 704 Регистрация: 19.1.2006 Где: Новосибирск Репутация: 3 Всего: 20 |
а можно сделать
и будет тебе счастье -------------------- Все мы, на перине с песней, строим небо на земле © Ю. Шевчук |
|||
|
||||
Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
Rino, раз уж есть js, можно работать с регулярными выражениями. берешь свой текст и проверяешь на /\n/. Если есть хоть один символ переноса строки, значит есть. Заодно, можно проверить где именно появляются переносы строк, если появляются
![]() -------------------- менеджер по кодеврайтингу ![]() |
|||
|
||||
Rino |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 29.8.2005 Репутация: нет Всего: нет |
Bulat, а смысл обрабатывать это скриптами?
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "XML/XSLT" | |
|
Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась. Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение. Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел Желаем удачи в Вашем деле! Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | XML, XSL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |