|
Можно ли выгружая данные в xml, дописывать в файл раз за разом ?
| ☑ |
0
Анастасия Изотова
10.08.16
✎
04:22
|
Добрый день. Помогите советом))) у меня 1С 8.1.
делаю выгрузку в xml из документа.
Есть файл на диске. и в него нужно писать (в зависимости от событий происходящих в документе).
Только нужно что бы файл был один, не удалялся и не пересоздавался, а дозаписывался. Такое возможно ?
при процедуре такой-то, в коде, в файл писалось несколько строк, потом еще, и еще ...
Делаю вот так:
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл("C:\1\tel.xml", "UTF-8");
Запись.ЗаписатьОбъявлениеXML();
Запись.ЗаписатьНачалоЭлемента("Начало");
Действие();
Запись.ЗаписатьНачалоЭлемента("сработалЗапрос");
Запись.ЗаписатьТекст(Строка(Результат.ДействияВфайлЗаписываем));
Запись.ЗаписатьКонецЭлемента();
Запись.ЗаписатьКонецЭлемента();
|
|
1
Garykom
гуру
10.08.16
✎
04:27
|
Как закрывающие теги удалите?
А без "Запись.ЗаписатьКонецЭлемента();" файл xml будет невалидный, т.е. нужно перед "дописыванием" открыть, удалить "последнюю строку", дописать своими телефонами и снова закрыть.
|
|
2
Garykom
гуру
10.08.16
✎
04:29
|
Не то что то делаете, сделайте чтение файла, разбор и снова запись по кнопке записать.
|
|
3
Garykom
гуру
10.08.16
✎
04:31
|
Лучше не xml, а обычный текст или dbf (XBase) пользуйте для своих "логов"
|
|
4
NorthWind
10.08.16
✎
06:46
|
(0) наверно, только используя DOM возможно. Но если файлик большой - будет ужор памяти и небыстро.
|
|
5
Горогуля
10.08.16
✎
06:48
|
а взять из ЖР предлагали?
|
|
6
NorthWind
10.08.16
✎
06:50
|
Либо же - вариант второй - при старте зачитывать файл и переносить теги в новый до закрывающего, а потом дописывать новую инфу, ставить закрывающий и сохранять.
|
|
7
Garykom
гуру
10.08.16
✎
07:07
|
(6) Есть всего 2 разных метода работы с XML, это DOM или
|
|
8
Garykom
гуру
10.08.16
✎
07:08
|
(7)+ в смысле твоя обычный SAX описать простейший ))
|
|