XML.Path

From SunFlurry wiki
Jump to: navigation, search
  Path (Работа с путем ветки)
Объект:Объект XML
Статус разработки: Реализована
Тип:Атрибут
Обращение к БД:Нет
Доступность:Чтение и запись
Визуальность:Нет

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

Синтаксис

XML.Path:<Полный путь текущей ветки 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]";

//Вывод информации по структуре подчинения ветки
While not aNode.IsRoot Do
  Message(aNode.FullName+?(_And(aNode.Count()=0,aNode.Value<>"")," ---> """+aNode.Value+"""")+", Атрибуты: "+aNode.Attributes);
  aNode:=aNode.Parent;
EndDo;