XML.ByName

From SunFlurry wiki
Jump to: navigation, search
  ByName (Получение подчиненной ветки по имени)
Объект:Объект XML
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в число, строку, ветка на найдена.
Визуальность:Нет

Функция используется совместно с объектом XML или объектом ветки XML и возвращает объект подчиненной ветки по ее имени. Наименования веток ищутся с учетом регистра. Если в искомом имени не задано пространство имен, ищется ветка с любым пространством имен с совпадающим именем. Чтобы форсировать поиск веток без пространств имен в этом случае, необходимо указать в искомом имени пустое пространство имен (:<Имя ветки>).

Синтаксис

XML.ByName(<Имя ветки с или без пространства имен (STRING)>,<Индекс среди одинаковых имен (INT)>=1):<Объект вложенной ветки (XMLBRANCH)>

Аргументы

  • <Имя ветки с или без пространства имен (STRING)> - Аргумент задает имя подчиненной ветки для поиска. Формат задания имени влияет на то, будут ли при поиске учитываться пространства имен. Формат может быть следующим:
    • имя ветки без пространства имен (к примеру, tag) -- поиск будет происходить для имен веток с любым пространством имен или без пространства имен вообще (т.е. для tag будут найдены tag, ns1:tag и т.п.).
    • имя ветки с пространством имен (к примеру, ns1:tag) -- поиск будет происходить для имен веток с указанным пространством имен (т.е. для ns1:tag не будут найдены tag, ns2:tag и т.п.).
    • имя ветки с пустым пространством имен (к примеру, :tag) -- поиск будет происходить для имен веток без пространства имен, имена веток с пространствами имен будут пропускаться при поиске (т.е. для :tag не будут найдены ns1:tag, ns2:tag и т.п.).
  • <Индекс среди одинаковых имен (INT)> - (необязательный аргумент) Аргумент дополнительный цифровой индекс ветки среди веток с тем же именем. По умолчанию, возвращается первая найденная ветка.

Возвращаемое значение

Возвращает объект найденной ветки.

Примеры

aObject:=XML.create();
Стр:=aObject.LoadFromFile("c:\file.xml",65001);
If not IsEmpty(Стр) Then
  Message("Найдены ошибки при загрузке файла:"+_NEWLINE+Стр);
  Exit;
EndIf;

//Вывод информации по ветке <data> подчиненной корневой ветке.
aNode:=aObject.Root.ByName(":data");
Message(aNode.FullName+?(_And(aNode.Count()=0,aNode.Value<>"")," ---> """+aNode.Value+"""")+", Путь: "+aNode.Path);