Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

как правильно копировать XML в XML с выборочными элементами ?

как правильно копировать XML в  XML с выборочными элементами ?
Я
   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>

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
Независимо от того, куда вы едете — это в гору и против ветра!
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.