Difference between revisions of "XML.Duplicate"
1>Admin (→Примеры) |
(No difference)
|
Revision as of 07:20, 28 June 2021
| Duplicate (Копирование объекта) | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||
Функция используется совместно с объектом ветки XML и возвращает новый объект, позиционированный на ту же самую ветку, что и исходный.
Синтаксис
XML.Duplicate():<Объект, указывающий на ту же ветку, что и текущий (XMLBRANCH)>
Возвращаемое значение
Возвращает объект ветки XML.
Примеры
//Рекурсивная функция вывода и обхода, выводятся только ветки без подчиненных веток
Function ВывестиДеревоФайла(аВетка)
//Сохраним для второго цикла
бВетка:=?(аВетка=0,0,аВетка.Duplicate());
//Если следующей ветки нет, переменная будет равна нулю
While аВетка<>0 Do
If аВетка.Count()=0 Then
//Вывод имени ветки, значения и полного пути ветки
Message(аВетка.FullName+?(аВетка.Value<>""," ---> """+аВетка.Value+"""")+", Путь: "+аВетка.Path);
EndIf;
аВетка:=аВетка.Next();
EndDo;
//Цикл с рекурсией
While бВетка<>0 Do
If бВетка.Count()>0 Then
ВывестиДеревоФайла(аВетка.FirstChild());
EndIf;
бВетка:=бВетка.Next();
EndDo;
EndFunction
аОб:=XML.create();
Стр:=аОб.LoadFromFile("c:\file.xml",65001);
If IsEmpty(Стр) Then
//Вызов рекурсивного вывода дерева загруженного файла XML
ВывестиДеревоФайла(аОб.FirstChild());
Else
Message("Найдены ошибки при загрузке файла:"+_NEWLINE+Стр);
EndIf;