XLog - язык обработки HTML- и XML-документов - page 6

С.С. Магазов, Д.О. Чугунов
6
1) если в текущей позиции пути стоит «\», имя тега
(ident
i
)
, запи-
санное после «\», определяет дочерние теги текущего списка (список,
полученный на предыдущем шаге), которые могут быть включены в
результирующий список. Если после
ident
i
стоит
[predicate]
, то перед
добавлением элемента в результирующий список осуществляется
вычисление значения предиката, и элемент добавляется в результи-
рующий список, только если результат равен
true.
Если в квадратных
скобках указан индекс возвращаемого элемента, в результирующий
список будет помещен элемент с указанным номером (нумерация
начинается с 1);
2) если в текущей позиции пути присутствует «\\», выбираются
все потомки элемента текущего списка, т. е. списка, полученного на
предыдущем шаге, с проверкой предиката на истинность.
Как видно из определения, правила формирования результирую-
щего списка похожи на правила XPath.
Выражения XLog.
Помимо операторов в XLog включен ряд
вы-
ражений
. Рассмотрим наиболее важные из них.
Выражение
is
является аналогом оператора присваивания. Фор-
мат этого выражения следующий:
var
is
path
,
где
path –
путь или выражение;
var –
переменная.
Так как у нас имеется два типа переменных, то оператор
is
вы-
нужден выполнять проверку типов: если присвоение невозможно,
возникает ошибка времени выполнения.
С помощью выражения
in
определяется принадлежность значе-
ния переменной
Var
списку элементов, определяемый путем (
path
).
Формат выражения следующий:
var
in
path
.
Результатом этой операции будет либо
true
, если результат вы-
числения выражения принадлежит набору элементов, задаваемых пу-
тем, либо
false
– в противном случае.
Пример 4.
Пусть переменная $X определяет список элементов:
<a>Element1</a>,
<a>Element2</a>.
Тогда выражение "<a>Element1</a>"
in
$X будет истинным, а
выражение "<a>Element6</a>"
in
$X – ложным.
Рассмотрим ряд выражений XLog, подобных конструкциям из
XPath, XQuery и XSLT. Синтаксис по возможности сохранен.
1,2,3,4,5 7,8,9,10,11,12,13,14
Powered by FlippingBook