![]() |
\n строки из XML
Когда беру строку из XML'ки, то перестает работать \n в текстовом поле,
подскажите как решить эту проблему. |
CDATA и xhtml-тег <br/>
|
"и" или "или"?
Не могу найти в инете нормального мануала. Что с этим делать, например, я делаю так: Код:
<group name="descrition"><![CDATA[Организатор:\nМежрегиональная общественная организация содействия архитектурному образованию.]]></group> |
PHP код:
|
Так пробовал, он не делает перенос строки, а просто оставляет <br/>
|
|
Ну так не text, а htmlText надо устанавливать текстфилду)
|
И правда text поменял в методе смены языка.)
Но с htmlText вообще не выводится теперь. |
Я и не указывал на разбивку текста. Далее же в теме указано решение, и так должно работать:
Код AS3:
Код AS3:
|
Вообще-то код ас2, но все равно спасибо)
|
У меня все выводится и переносится, и никакие теги в видимом тексте не остаются:
Код AS3:
|
Цитата:
У меня тоже подозрение что баг в другом месте. Или сам XML кривой, или в коде что-то |
Возможно больше "ко двору" ignoreWhitespace
|
Цитата:
|
А кстати говоря да - ерунда получается... Тогда можно исопльзовать \\
 ( без косых только, они сейчас просто экранируют символ переноса строки ).
|
Я в шоке, что никто не дал ответа на такой банальный вопрос, который довольно часто задавали на форуме.
Когда мы пишем \n в коде, то при компиляции получаем один символ переноса строки. При загрузки из внешнего источника, этого не происходит и мы имеем два символа \ и n. Всего то нужно заменить экранированный обратный слеш и n, на \n. Код AS3:
|
Как просто. Вроде "\\" — это экранирование бэк-слеша. Но то в языке программирования Си
CDATA интерпретируется "как есть". В нем достаточно организовать LF, CR или CR/LF. Т.е. не прописывать "\n" в явном виде. Иначе оно интерпретируется как два отдельных символа "\" и "n". |
Ага. Это из разряда "пишем в местах перевода строки звездочки - *, потом в рантайме делаем сплит и джойн с заменой звездочек на перенос \n".
Да просто не надо пользоваться в XML и в других внешних данных этой системой. Совершенно верно сказано, что в контексте plain text это просто два символа. Если текст требует форматирования, надо пользоваться форматированием, html или TLF Markup. А игры с заменой экранчиков рано или поздно сыграют злую шутку. |
Цитата:
Моё решение лучше. |
Как раз нашел эту тему http://www.flasher.ru/forum/showthread.php?t=90892
Но за реплейс спасибо, блин давно пора разобраться в регулярных выражениях.. Чтобы заменить \\n и \\t одним реплейсом же никак? |
Цитата:
|
Цитата:
Цитата:
А лучше как написал Димарик. Там вообще ничего делать не надо и создавать легко. |
Цитата:
Вообще, выбор эффективного решения зависит ещё и от того каким образом формируется хмл... Но <br /> точно на последнем месте, ибо костыль. |
Цитата:
Цитата:
|
Ставить 
 точно не лучше.
Хуже читается, чем \n. Лучше как написал Димарик. Даже, если винда и нет возможности выбрать какой вариант EOL использовать, то тот же replace свободно приведет \r\n к \n. Да, одна строчка кода будет. Но это не страшно, зато любой текст можно быстро редактировать, без вставок абракадабры 
, особенно, если забивать будет девочка, которая это не понимает. И ошибок будет меньше, а с 
 они будут, особенно при редактировании. Если же в админке есть постобработка добавленного текста, то разницы все равно не будет, что там будет меняться 
 или же \n. Но при отладке \n более читабельная. Ну и последние момент, если все же для вывода текста будет использовать text, а не htmlText, то \n будет работать, а 
 нет. |
Цитата:
Добавлено через 5 минут Цитата:
как передать перенос строки в тексте. Её и надо решать. Так ведь? |
Цитата:
Вот специально проверил - не работает. |
Цитата:
Парадокс как раз в том, что весь консилиум сейчас обсуждает совершенно конкретную ситуацию "просто текст", и при этом никак не может прийти к согласию, какими костылями исправлять какие баги; что будет работать при таких-то условиях, что не будет; и как объяснить "девочке" (а я бы сказал — заодно и адмике), какие странные закорючки надо ставить и как правильно сохранять. А хтмл просто работает и всё. |
Вложений: 1
Цитата:
|
Внутри cdata не работает.
|
| Часовой пояс GMT +4, время: 12:07. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.