Как при генерации XML файла в ячейке сделать перенос строки при цикле?
Я там в коде поставил
, но он не делает перенос строки в ячейке.
Как решить проблему?
- Вопрос задан более трёх лет назад
- 9504 просмотра
Комментировать
Решения вопроса 0
Ответы на вопрос 1
Не помню какой именно но попробуй
(«\n»)
пр.:
Первая строка
Вторая строка
P.S. Как запасной вариант имей ввиду («\r»)
Ответ написан более трёх лет назад
Нравится 3 5 комментариев
eldar_web @eldar_web Автор вопроса
Перенос строки работает, но значения выходят за пределы ячейки, то есть, ячейка не увеличивается на высоту. Есть решение?
eldar_web: используй стиль на Cell
стиль должен быть определен в блоке стилей
eldar_web: Мой совет как тебе будет легче всего:
Оформи данные как считаешь нужным в Exсel’е, сохрани в xml и открой его в текстовом редакторе (напр. notepad++). Сразу и шаблон получишь и много нового узнаешь, только полностью не копируй, только части которые тебя интересуют.(не засоряй свой шаблон всем что посылает Exсel) Если что будет непонятно и не сможешь найти в поисковиках, вот тогда и спрашивай.
eldar_web: Получилось?
eldar_web: Если ответ верный прошу обозначить как таков. Заранее спасибо )
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- HTML
- +1 ещё
Как расположить объекты в div в строчку?
- 1 подписчик
- 6 минут назад
- 8 просмотров
Как в notepad сделать перенос строк xml
Добрый день всем.
Создаю xml файл используя пакеты XDTO. Схемы были предоставлены гос. конторой, поэтому XDTO казалось использовать проще. Но не тут то было.
Файл сформировался отлично, данные в него загружены, но выявилось 2 беды:
1. Файл, при открытии его в notepad++ не имеет переносов строк. Т.е. он в одну строку. В принципе, при открытии через XML Explorer или Edge проблем никаких и нормально парсится, но на принимающей стороне ругаются. При создании файла через ЗаписьXML такой проблемы нет.
2. Вторая беда в том, что необходимо задать псевдонимы пространства имен (задаются в начале файла), а потом используются в теле документа уже псевдонимы.
Например, в корневом каталоге прописаны NS
xmlns:УТ=»http://url.url/UT/2017-08-21" — здесь УТ есть имя
Оно уже используется в самом документе
<Реквизиты>
<УТ:Дата>2017-03-31УТ:Дата>
<УТ:Номер>654684УТ:Номер>
Реквизиты>
Но в XDTO я не нашел как задать такой параметр.
Если что сможет чем помочь, буду благодарен (+97 в карму)
(0) что-то типа этого
В объекте ЗаписьXML настраивается и 1 и 2.
>>Создаю xml файл используя пакеты XDTO
Как так формируется xml файл с использованием XDTO, и не используя ЗаписьXML, не понятно. Это даже как-то постараться надо. 🙂
(1) Так тип не получить. Получить надо тип конкретного объекта пространства имен.
Например: типУТ_ФИО = ФабрикаXDTO.Тип(«http://url.url/UT/2017-08-21»,»УТ", «ТипФИО»);
(2) Не совсем правильно выразился. Имеется ввиду, что запись формируется механизмами XDTO и указанными схемами. Без использования методов ЗаписьXML.ЗаписатьНачалоЭлемента ЗаписьXML.ЗаписатьАтрибут и ЗаписьXML.ЗаписатьКонецЭлемента
по пунктам:
1. Смотри в СП объект ПараметрыЗаписиXML отступы настраиваются там и по умолчанию они вроде итак заданы.
2. Смотри метод ЗаписатьСоответствиеПространстваИмен у объекта ЗаписьXML. Все используемые пространства имен можно объявить в корневом элементе.
(0) xsd схема то есть у вас? Если ест то, например делаете так:
Фабрика = СоздатьФабрикуXDTO(ПутьКМоемуФайлуСхемы);
ПростанствоИмен = «http://url.url/UT/2017-08-21";
ТипУТ = Фабрика.Тип(ПростанствоИмен,»УТ»);
ОбъектУТ = Фабрика.Создать(ТипУТ);
ОбъектУТ.Дата = ‘20170331’;
ОбъектУТ.Номер = ‘654684’;
(4) ЗаписатьСоответствиеПространстваИмен используется при использовании ЗаписьXML.ЗаписатьНачалоЭлемента и вызывается после него. Я же не использую ЗаписатьНачалоЭлемента, все элементы записываются автоматически механизмом XDTO.
(4) ПараметрыЗаписиXML помогли, большое спасибо!
Смутило по началу, что свойства не доступны для записи.
Так работает:
ПараметрыЗаписиXML = Новый ПараметрыЗаписиXML(«UTF-8», «1.0», Истина, Истина);
Так не работает:
ПараметрыЗаписиXML = Новый ПараметрыЗаписиXML();
ПараметрыЗаписиXML.Отступ = Истина;
(6)да, а вот чтобы объявить префиксы пространств имен один раз, корневой элемент надо делать ручками (ЗаписатьНачалоЭлемента), потом нахлобучивать префиксы пространств имен, потом уже вдувать в файл объекты XDTO сериализатором или фабрикой, ну и в конце ручками закрыть корневой элемент.
(8) Большое спасибо, попробую.
Еще вопросик небольшой, может сталкивались. В схеме прописан тип данных «ТипДеньгиКоп». Подразумевается, что формат будет с копейками, т.е. число 5 должно записаться как 5.00.
Бился пару дней с этой проблемой, по итогу исправил тип в схеме на строку и пишу строку «5.00». 1С настырно отбрасывает лишние по ее мнению нули.
Хотя образец в схеме прописан «\-?[0-9]+\.\d»
(8) Спасибо, это помогло. Правда немного увеличило код. Ранее вся запись в файл была в одну строку — это запись корневого элемента. Теперь немного увеличилось, но вроде работает.
Но теперь не ясно, как сделать запись о пространстве имен без префикса. Т.е. самое первое пространство имен, основное так сказать.
(9)Если у типа задан образец, то базовый тип у него string, а мы туда число пихаем. Объект XDTO не преобразовывает числа к строке по образцу, вместо этого 1С по своему обыкновению просто не явно преобразует число к строке.
Выдерживать образец это задача самого программиста. Т.е. сам форматируй функцией Формат и пихай строку.
Это разработчики схемы надурили, им надо было взять базовый тип decimal, и ограничить его как надо. Тогда бы работало с присвоением числа.
(10)пространство имен без префикса это тоже определенное пространство имен и задается так: ЗаписатьСоответствиеПространстваИмен(«», «тут uri ПИ»).
Имя элемента, в котором объявляется префикс пространства имен, уже может содержать этот префикс.
С точки зрения xml парсеров это два совершенно одинаковых квалифицированных элемента:
Для них это одно и тоже, читаться и соответствовать схеме будет и то и это.
(12) Да, это я сам допер. С именами. А вот по типам не до конца.
Есть такая структура:
<СВ>
<Сумма>6975.49Сумма>
<Доход>2480.48Доход>
СВ>
«Сумма» и «Доход» имеют тип «ТипДеньги», который описан в другом пространстве имен как ТипыЗначений.
А уже во втором пространстве имен есть описание ТипаЗначений «ТипДеньги» как атомарного типа. И в нем базовый тип decimal.
Если в это поле мы пытаемся положить число 5.20, то оно автоматически обрезается до 5.2, а это уже не удовлетворяет формату схемы. 1С Выдает ошибку несоответствия формата.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший
Notepad++ замена символов, перенос на новую строку

Всем привет! Как-то столкнулся при чтении файлов в редакторе Notepad++ (кто его еще не использует, то настоятельно рекомендую) с необходимостью массового форматирования кода, а именно перенос на новую строку. Так как кода было много и вручную это делать долго и нудно был применен принцип «Автоматизируй это!».
Совет! автоматизируйте рутинные задачи, чтобы оставить время и силы для решения других, более сложных и интересных задач.
Решение
Для того, чтобы в Notepad++ массового выполнить перенос на новую строку необходимо:

- Вызываем окно поиска с помощью Ctrl+F . Режим поиска выбираем «Расширенный». Вкладка «Замена»
- В строке «Найти» пишем что нужно заменить (пример )
- В строке «Заменить на» пишем чего хотим (пример
\r\n
)
- Нажимаем «Заменить все»
Справочная информация. Наборы выражений Notepad++
. «Точка» представляет один любой символ;
^ Начало строки;
$ Конец строки;
^$ пустая строка (начало и конец, между которыми пусто);
.+ любая не пустая строка;
\s Пробел;
\S Не Пробел
\w буква, цифра или подчёркивание _;
\d Любая цифра;
\D Любой символ, но не цифра;
[0-9] Любая цифра;
[a-z] Любая буква от a до z (весь латинский набор символов) в нижнем регистре;
[A-Z] Любая буква от A до Z в ВЕРХНЕМ регистре;
[a-zA-Z] или [a-Z] Любая буква от a до z в любом регистре;
* «Повторитель». Означает, что предшествующий символ может повторяться (0 или более раз);
.* Абсолютно любой набор символов. Например, условие.*
найдет все что между тегами ;
(^.*$) Любой текст между началом и концом строки;
([0-9][0-9]*.) ищет любые цифры, в данном случае двухзначные цифры;
\n Ищет символ новой строки;
\r Ищет пустые строки содержащий символы «перевод каретки» ;
^$ Ищет пустые строки
\n\r Ищет пустые строки содержащий символы — символ новой строки и «перевод каретки»
\s Ищет класс пробельных символов. К пробельным символам относятся пробел, символ табуляции, возврат каретки, символ новой строки и символ перевода страницы. То же самое, что и [ \t,\r,\n,\f];
\S Ищет класс не пробельных символов. То же самое, что и [^ \t, \r,\n,\f];
^\s*$ Ищет пустые строки содержащие пробел;
^[ ]*$ Ищет пустые строки содержащие пробел;
^Слово Ищет слово «Слово» в начале строки;
Слово$ Ищет слово «Слово» в конце строки;
\bдол Ищет набор символов «том», только в начале слов, то есть в слове Долина будет найдено, а в слове Подол нет;
дол\b Ищет набор символов «дол», только в конце слов, то есть в слове Долина не будет найдено, а в слове Подол да;
\Bдол\B Ищет набор символов «том», не в начале и не в конце слов, то есть в слове Долина не будет найдено, и в слове Подол нет, а вот в слове Подольск будет найдено;
| — Регулярное выражение, «или». Будет искать то что слева и справа.Примеры:
Найти (^.*$) Заменить \n\r — находит новую строку и добавляет к ней пустую строку;
Найти (^.*$) Заменить — находит новую строку и заключает её в теги ;
Найти \n\r Заменить «оставляем пустым» — Удаляет пустые строки
круглые скобки обязательны, иначе найденное будет изменено на заменяемое.
- Notepad++. Как изменить синтаксис по умолчанию
- Красивый перенос Redmine
- Настройка UWF через командную строку
- Увеличить количество символов в названии товара Cs-Cart
- Увеличить количество символов в названии блоков Cs-Cart
Как в notepad сделать перенос строк xml
Ребзя, помогите! Скачал Notepad++ 6,9 с официального сайта. Попытался открыть html документ, открывает, но в неудобочитаемом виде (нет разделения на строки, всё идет одним блоком, а фон подсвечен розовым). Прилагаю скриншот. Как сделать так, чтобы Notepad++ открывал документы, так как он и должен это делать, в удобочитаемом виде. То что есть сейчас редактировать просто невозможно.
Прикреплённый файл Image_1.jpg (83,91 Кбайт, скачиваний: 1442)
Сообщ. #2 , 22.04.16, 08:02

Рейтинг (т): 79
Проблема в переносах строк. Весь мир сидит на \n, нотпад пытается найти \r\n
Сообщ. #3 , 22.04.16, 11:03
Рейтинг (т): 135
Весь мир сидит на \n
Билл Гейтс смотрит грустно и с недоумением.
Вообще странная ситуация — Notepad++ сам распознает и использует любой из трех форматов. Может, в файле переносов строк просто нет? Например, кто-то открыл файл с юниксовыми переносами в обычном блокноте и зачем-то сохранил файл. Или на сервере шаблоны такие кривые. Попробуй посмотреть файл в шестнадцатиричном виде (любой нормальный двухпанельный менеджер умеет) и поискать байты 0a и 0d.
Сообщ. #4 , 22.04.16, 15:24
Рейтинг (т): нет
Serafim, а это можно как-то исправить?
Сообщ. #5 , 22.04.16, 16:05
Рейтинг (т): 135
Цитата Serafim @ 22.04.16, 08:02
Весь мир сидит на \n, нотпад пытается найти \r\n
Мой 6.8.8 нормально переводит и случай когда только байты 0A.
Цитата AVA12 @ 22.04.16, 11:03
Может, в файле переносов строк просто нет? Например, кто-то открыл файл с юниксовыми переносами в обычном блокноте и зачем-то сохранил файл.
Скорее всего, их=переносов просто нет.
Сообщ. #6 , 22.04.16, 16:12
Рейтинг (т): нет
AVA12, посмотрел файл через тоттал-командер в шестнадцатиричном виде, но не нашел байты 0a и 0d.
Сообщ. #7 , 22.04.16, 16:14
Рейтинг (т): 135
Цитата heavenlook @ 21.04.16, 21:29
Как сделать так, чтобы Notepad++ открывал документы, так как он и должен это делать, в удобочитаемом виде.
Можно выбрать команду «Плагины\NppExport\Export to HTML», но она не один-в-один сохранит, малость.
Сообщ. #8 , 22.04.16, 16:15
Рейтинг (т): нет
Славян, как думаешь, если установить 6.8.8 версию Notepad++ , проблема решится?
Добавлено 22.04.16, 16:20
Цитата Славян @ 22.04.16, 16:14
Цитата heavenlook @ 21.04.16, 21:29
Можно выбрать команду «Плагины\NppExport\Export to HTML», но она не один-в-один сохранит, малость.
Нет, не могу ничего менять в файле, т.к. он клиентский.
Цитата heavenlook @ 21.04.16, 21:29
Можно выбрать команду «Плагины\NppExport\Export to HTML», но она не один-в-один сохранит, малость.
Нет, не могу ничего менять в файле, т.к. он клиентский.
Сообщ. #9 , 22.04.16, 16:26
Рейтинг (т): 135
Цитата heavenlook @ 22.04.16, 16:15
как думаешь, если установить 6.8.8 версию Notepad++ , проблема решится?
Думаю, что нет. Открывать он будет/должен всё равно «как есть». Как «заставить» показывать, выполняя некое задуманное преобразование, — не знаю.
Добавлено 22.04.16, 16:30
П.С. собственно, 6.8.8 тоже не решает вашу задачу, т.к. и он откроет всё длинной строкой, а покажет как надо токмо опосля преобразования. Попробуйте нажать Ctrl+I — операция разбить строки.
Сообщ. #10 , 22.04.16, 17:24
Рейтинг (т): нет
Славян, да, установил 6.8.8 версию Notepad++, и всё-равно открывает файл в одну строку. Попытался по вашему совету, раззбить на сторки, но все строки в одной куче, нет разделения на блоки и т.д. Вообщем, работать с файлом в таком состоянии просто невозможно.
Сообщ. #11 , 22.04.16, 17:45
Рейтинг (т): 135
Гм, у меня авторазбиение на строки на тестовом файлике не работает (а как должно работать?). Экспорт в HTML тупо экранирует текст и вставляет его в div. Нашел пока только одно работающее решение: открыть в браузере -> инструменты разработчика -> документы -> развернуть дерево -> выделить все -> скопировать и сохранить.
Сообщ. #12 , 22.04.16, 18:25
Рейтинг (т): нет
AVA12, ну вообще, до того как переустановил ось с windows xp на windows 10, в Notepad++ этот же документ открывался корректно. Т.е. так же с сервера скачивал этот html документ, и прекрасно открывал его в Notepad++, с переносами строк, блоками и подсветкой. А сейчас почему-то открывает в неудобочитаемом виде. Вот и ломаю голову, почему так происходит.
По вашему совету открыл файл в браузере google hrome, далее перешел в инструменты разработчиков, и получил картину как на скриншоте. Куда дальше нажимать? Пункта «Документы» нигде не вижу.
Прикреплённый файл bchv.jpg (20,05 Кбайт, скачиваний: 1351)
Сообщ. #13 , 25.04.16, 22:14
Рейтинг (т): нет
Уважаемые форумчане, есть ещё какие-то идеи как решить проблему?
Сообщ. #14 , 26.04.16, 12:21

Рейтинг (т): 74
heavenlook, насколько я понял сервер отдает HTML одной строкой, так что баловаться с редакторами бесполезно. Ищи программы (или онлайн сервисы) для авто-форматирования HTML и прогоняй свой файл через них.