Имя: Пароль:
1C
1С v8
Исправление в XML-файле
0 Evladar
 
28.08.14
11:04
Если у кого была такая задача, подскажите методику.

Знаю, что XML-файл можно открыть или на запись, или на чтение.
Но необходимо открыть XML-файл, найти значение атрибута по имени и поменять в случае необходимости.
То есть, открыть, исправить и записать.

Как это сделать (открыть на перезапись)?
1 Ёпрст
 
28.08.14
11:20
Открыть блокнотом и исправить
2 Evladar
 
28.08.14
11:25
(1) Когда будет тысяча строк, обращусь за помощью )
3 ДенисЧ
 
28.08.14
11:25
поставить нормальные редактор XML
4 Ёпрст
 
28.08.14
11:26
(2) Не вопрос, найти и заменить в любом текстовом редакторе пока еще никто не отменял
5 Evladar
 
28.08.14
11:27
Народ, давайте, по существу )
6 ДенисЧ
 
28.08.14
11:29
(5) не тупи. Тебе уже ответили.
7 Эльниньо
 
28.08.14
11:29
Не нравится блокнот - открой вордом и удивись
8 Evladar
 
28.08.14
11:29
Я думаю, считать из файла, например, в ТЗ или в какую-либо другую структуру, сделать изменения, открыть на запись и залить целиком туда.

Но это долго.
Ищу вариант попроще.
9 Evladar
 
28.08.14
11:30
Ну, вы что, каким блокнотом? ))
У меня тысяча строк, и мне надо дату увеличить на 1 день в определённом атрибуте.
10 Любопытная
 
28.08.14
11:31
(9) и в чем проблема?
11 Evladar
 
28.08.14
11:35
(1) Надо посадить пользователя сделать 1000 изменений в блокноте исправлением разных дат. Вместо нажатия одной кнопки.
Какая может быть проблема?)
12 Ёпрст
 
28.08.14
11:36
(9) и чего ?
читаешь один файл, пишешь в другой, можешь тупо по-строчно, вообще без всяких структур и дом-документов
13 Evladar
 
28.08.14
11:37
(12)Вот и я думаю, можно ли проще.
Ладно, ясно. Спасибо. )
14 Мыш
 
28.08.14
11:42
ТекстовыйДокумент.ЗаменитьСтроку(НомерСтроки, Строка);
15 mistеr
 
28.08.14
11:55
(0) Основных варианта два.

1. Считать в DOM, найти элемент, исправить, записать. Минусы: внешний вид на выходе может отличаться.

2. Считать как текст, найти нужное место поиском, заменить, записать. Минусы: можно ошибиться с поиском.
16 hovnokoder
 
28.08.14
12:04
Я делал так:

    НовИмяф=Лев(имяф,(СтрДлина(имяф)-3))+"xml";
            ТВ=СоздатьОбъект("Текст");
                ТВ.Открыть("D:\mail\"+имяф);
            Стр1=ТВ.ПолучитьСтроку(1);
             Если Найти(Стр1,"utf-8")>0 Тогда
               Стр1=СтрЗаменить(Стр1,"utf-8","WINDOWS-1251");
               ТВ.ЗаменитьСтроку(1,Стр1);
               ТВ.Записать("D:\mail\"+НовИмяф);
               Фс.УдалитьФайл("D:\mail\"+имяф);
.......
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший