Имя: Пароль:
1C
1С v8
как правильно копировать XML в XML с выборочными элементами ?
0 DES
 
06.04.21
14:32
XML1 ="
<Documents>
<Document>
  <Supplier ID="1"/>
  <Buyer ID="2"/>
  <Transporter ID="3"/>
</Document>
</Documents>
";
Как из XML1 скопировать в XML2
<Documents>
<Document>
  <Supplier ID="1"/>
  <Buyer ID="2"/>
</Document>
</Documents>

(без строковых функций)
1 RomaH
 
naïve
06.04.21
14:39
DOM документ и ... в СП
2 minsk1s
 
06.04.21
22:02
(1) размер файла надо смотреть. через DOM большой объем замучаешься..
3 minsk1s
 
06.04.21
22:04
(0) любой способ чтения и потом запись по примеру: https://1cnik.by/xml.php
4 RomaH
 
naïve
07.04.21
14:29
(2) ... большой это сколько? если через DOM замучаешься, то через что - нет?
5 Гений 1С
 
гуру
07.04.21
14:31
(4) ну думаю до 50Мегов ДОМ скушает.
6 Гений 1С
 
гуру
07.04.21
14:32
погугли XSLT преобразования, вроде они и в 1с есть, не?
7 RomaH
 
naïve
07.04.21
15:28
ДокументXML = Построитель_DOM.Прочитать(ЧтениеXML);
на 120 метров без форматирования - 9 секунд
8 RomaH
 
naïve
07.04.21
15:34
прикольно
после того как ЧтениеXML читаю в DOM
Данные = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML); падает в ошибку преобразования

вот так работает    
        ТекстНСИ = ДокументНСИ.ФайлНСИ.Получить().ПолучитьТекст();
        
        ЧтениеXML = Новый ЧтениеXML();
        ЧтениеXML.УстановитьСтроку(ТекстНСИ);
    
        Данные = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);

а вот так - нет:

        ТекстНСИ = ДокументНСИ.ФайлНСИ.Получить().ПолучитьТекст();
        
        ЧтениеXML = Новый ЧтениеXML();
        ЧтениеXML.УстановитьСтроку(ТекстНСИ);
        
        Построитель_DOM = Новый ПостроительDOM;
        ДокументXML = Построитель_DOM.Прочитать(ЧтениеXML);

        Данные = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
9 Вафель
 
07.04.21
15:42
у тебя во 2 случае чтение уже уходит в конец поэтому и не читается
2 + 2 = 3.9999999999999999999999999999999...