Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Уровень закрывающего тега XMLlite (число прочтений - 584 )
ЧебурЗлоп
Senior Member
****
Отсутствует


Ябба!

Сообщений: 314
Местоположение: г.Москва
Зарегистрирован: 14. Августа 2006
Пол: Мужской
Уровень закрывающего тега XMLlite
13. Марта 2021 :: 14:44
Печать  
В XMLlite  - уровень закрывающего тега
имеем простой XML
.

.
Тэги ГРУППА и ЭЛЕМЕНТИ - уровень=3
Тэги ЕДИНИЦЫ - уровень4
Грузим файлик тестовой обработкой прилагаемой к реализации XMLlite в 1с++
.

.
А почему закрывающий тег /ЭЛЕМЕНТ - уровень имеет такой же как вложенный в него тег ЕДИНИЦЫ..?? это правильно?

уровень для закрывающего тега дает GetDepth - вроде все просто...
.
Процедура XMLLiteRead(__источник ="")
     _nt =СоздатьОбъект("АссоциативныйВектор");
     _nt.Add(0, "None");
     _nt.Add(1, "Element");
     _nt.Add(2, "Attribute");
     _nt.Add(3, "Text");
     _nt.Add(4, "CDATA");
     _nt.Add("");
     _nt.Add("");
     _nt.Add(7, "ProcessingInstruction");
     _nt.Add(8, "Comment");
     _nt.Add("");
     _nt.Add(10, "DocumentType");
     _nt.Add("");
     _nt.Add("");
     _nt.Add(13, "Whitespace");
     _nt.Add("");
     _nt.Add(15, "EndElement");
     _nt.Add("");
     _nt.Add(17, "XmlDeclaration");
     
     _rr =СоздатьОбъект("1cpp.XmlLiteReader");
     
     Если ТипЗначенияСтр(__источник) ="BinaryData" Тогда
           _rr.SetInput(__источник);
     Иначе
           _bin =СоздатьОбъект("BinaryData");
           _bin.ПодключитьсяКФайлу(__источник, 0, 1);
           _rr.SetInput(_bin);
           _bin.Закрыть();
     КонецЕсли;
     
     _т =СоздатьОбъект("ИндексированнаяТаблица");
     _т.НоваяКолонка("__Уровень");
     _т.НоваяКолонка("__Тип");
     _т.НоваяКолонка("__Имя");
     _т.НоваяКолонка("__Значение");
     
     _type =_nt.None;
     Пока _rr.Read(_type) =0 Цикл
           Если _type =_nt.WhiteSpace Тогда
                 Продолжить;
           КонецЕсли;
           _т.НоваяСтрока();
           _т.__Уровень =_rr.GetDepth();
           _т.__Тип =_nt.GetKey(_type);
           _т.__Имя =_rr.GetLocalName();
           _т.__Значение =_rr.GetValue();
           Если _rr.MoveToFirstAttribute() =0 Тогда
                 _ДобавитьАтрибут(_rr, _т);
           КонецЕсли;
           Пока _rr.MoveToNextAttribute() =0 Цикл
                 _ДобавитьАтрибут(_rr, _т);
           КонецЦикла;
     КонецЦикла;
     _rr.Release();

     _т.Выгрузить(_тз);
КонецПроцедуры

  
Наверх
www  
IP записан
 
ЧебурЗлоп
Senior Member
****
Отсутствует


Ябба!

Сообщений: 314
Местоположение: г.Москва
Зарегистрирован: 14. Августа 2006
Пол: Мужской
Re: Уровень закрывающего тега XMLlite
Ответ #1 - 14. Марта 2021 :: 04:18
Печать  
В принципе, наверное так все и правильно...
  
Наверх
www  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать