XML.SubPath

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

Функция используется совместно с объектом XML или объектом ветки XML и находит указанный путь для дочерних веток текущей. Путь записывается в виде последовательности наименований веток с возможным дополнительным номером, указывающим на индекс ветки среди веток текущего уровня с таким же наименованием, также принимается знак ".", позволяющая перейти на родительский уровень, относительно текущего: <Ветка1>{[<Индекс1>]}{.}{<Ветка2>...} (к примеру ..<Setup><Options><Option>[2]). Функция возвращает объект ветки, позиционированный на ветке в конце создаваемого пути, если путь существует, иначе возвращается пустое значение.

Синтаксис

XML.SubPath(<Путь XML относительный к текущему объекту (STRING)>):<Объект найденной ветки (XMLBRANCH)>

Аргументы

  • <Путь XML относительный к текущему объекту (STRING)> - Аргумент задает путь для создания. Возможно использование индексов или специального знака ".".

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

Возвращает объект найденной ветки в конце указанного пути либо создает исключение, если путь не существует.

Примеры

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

//Позиционирование объекта ветки
aNode:=aObject.Root;
aNode.Path:="<data><keyword><value>[5]";
//Проход по всем вложенным тегам, вывод содержимного тега name.
aNode2:=aNode.FirstChild();
While not IsEmpty(aNode2) Do
  Message("Документ "+aNode2.SubPath("<document><name>").Text);
  aNode2:=aNode2.Next();
EndDo;