Difference between revisions of "XML.First"
1>Admin |
(No difference)
|
Revision as of 09:43, 22 June 2021
| First (Обход структуры документа XML) | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
Функция используется совместно с объектом ветки XML и возвращает объект первой ветки, подчиненной родителю текущей ветки, имеющей заданное имя, если это необходимо. Наименования веток ищутся с учетом регистра. Если в искомом имени не задано пространство имен, ищется ветка с любым пространством имен с совпадающим именем. Чтобы форсировать поиск веток без пространств имен в этом случае, необходимо указать в искомом имени пустое пространство имен (:<Имя ветки>). Если ветка не найдена, функция возвращает ноль.
Синтаксис
XML.First(<Имя ветки с или без пространства имен (STRING)>=""):<Первая ветка текущего уровня или ноль (XMLBRANCH,INT)>
Аргументы
<Имя ветки с или без пространства имен (STRING)>- (необязательный аргумент) Аргумент задает имя ветки для поиска. Формат задания имени влияет на то, будут ли при поиске учитываться пространства имен. Если аргумент не задан в выборку будут входить все ветки. Формат может быть следующим:- имя ветки без пространства имен (к примеру, tag) -- поиск будет происходить для имен веток с любым пространством имен или без пространства имен вообще (т.е. для tag будут найдены tag, ns1:tag и т.п.).
- имя ветки с пространством имен (к примеру, ns1:tag) -- поиск будет происходить для имен веток с указанным пространством имен (т.е. для ns1:tag не будут найдены tag, ns2:tag и т.п.).
- имя ветки с пустым пространством имен (к примеру, :tag) -- поиск будет происходить для имен веток без пространства имен, имена веток с пространствами имен будут пропускаться при поиске (т.е. для :tag не будут найдены ns1:tag, ns2:tag и т.п.).
Возвращаемое значение
Возвращает объект найденной ветки или ноль.
Примеры
//aNode -- произвольная ветка документа XML
If not aNode.IsRoot Then
//Вывод информации по ветке <data> подчиненной корневой ветке.
aNode:=aNode.First();
Repeat
Message(aNode.FullName+?(_And(aNode.Count()=0,aNode.Value<>"")," ---> """+aNode.Value+"""")+", Путь: "+aNode.Path);
aNode:=aNode.Next();
Until aNode=0;
EndIf;