XML.LastChild
Revision as of 06:49, 28 June 2021 by 1>Admin (Created page with "{{infobox function |name=LastChild |object=Объект XML |caption=Обход структуры документа XML |type=1 |status=2 |db=0 |exception=Невозмо...")
LastChild (Обход структуры документа XML) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция используется совместно с объектом XML или объектом ветки XML и возвращает объект последней ветки, подчиненной текущей ветке и имеющей заданное имя, если это необходимо. Наименование веток ищутся с учетом регистра. Если в искомом имени не задано пространство имен, ищется ветка с любым пространством имен с совпадающим именем. Чтобы форсировать поиск веток без пространств имен в этом случае, необходимо указать в искомом имени пустое пространство имен (:<Имя ветки>
). Если ветка не найдена, функция возвращает ноль.
Синтаксис
XML.LastChild(<Имя ветки с или без пространства имен (STRING)>=""):<Последняя ветка, вложенная в текущий объект или ноль (XMLBRANCH,INT)>
Аргументы
<Имя ветки с или без пространства имен (STRING)>
- (необязательный аргумент) Аргумент задает имя ветки для поиска. Формат задания имени влияет на то, будут ли при поиске учитываться пространства имен. Если аргумент не задан в выборку будут входить все ветки. Формат может быть следующим:- имя ветки без пространства имен (к примеру, tag) -- поиск будет происходить для имен веток с любым пространством имен или без пространства имен вообще (т.е. для tag будут найдены tag, ns1:tag и т.п.).
- имя ветки с пространством имен (к примеру, ns1:tag) -- поиск будет происходить для имен веток с указанным пространством имен (т.е. для ns1:tag не будут найдены tag, ns2:tag и т.п.).
- имя ветки с пустым пространством имен (к примеру, :tag) -- поиск будет происходить для имен веток без пространства имен, имена веток с пространствами имен будут пропускаться при поиске (т.е. для :tag не будут найдены ns1:tag, ns2:tag и т.п.).
Возвращаемое значение
Возвращает объект найденной ветки или ноль.
Примеры
//Рекурсивная функция вывода и обхода в обратном порядке Function ВывестиДеревоФайлаСКонца(аВетка,Стр="") //Если следующей ветки нет, переменная будет равна нулю While Not IsEmpty(аВетка) Do //Вывод имени ветки, значения (если нет вложенных веток) и полного пути ветки Message(Стр+аВетка.FullName+?(_And(аВетка.Count()=0,аВетка.Value<>"")," ---> """+аВетка.Value+"""")+", Путь: "+аВетка.Path); //Вызов функции для вложенных веток ВывестиДеревоФайлаСКонца(аВетка.LastChild(),Стр+" "); //Найти следующую ветку на текущем уровне аВетка:=аВетка.Prev(); EndDo; EndFunction аОб:=XML.create(); Стр:=аОб.LoadFromFile("c:\file.xml",65001); If IsEmpty(Стр) Then //Вызов рекурсивного вывода дерева загруженного файла XML ВывестиДеревоФайлаСКонца(аОб.LastChild()); Else Message("Найдены ошибки при загрузке файла:"+_NEWLINE+Стр); EndIf;