1. Сделан ряд новых функций языка для работы с файлами XML.
Используется DOM-представление XML документа, обеспечиваемое парсером MSXML.
- Для получения информации и выполнения операций над узлами XML-документа
используются курсоры.
- В качестве курсоров в языке используются переменные строкового типа.
- Для одного XML-документа может существовать несколько курсоров, связанных
с различными узлами.
- При создании или открытии существующего файла возвращается курсор, связанный
с корневым узлом.
- Операции с файлом в целом (сохранение, например) могут выполняться с
указанием любого курсора, из числа связанных с данным файлом.
- При закрытии файла все связанные с ним курсоры закрываются.
- При закрытии бланка, типовой операции и т.п. открытые XML-файлы автоматически
закрываются.
ФУНКЦИЯ ТИП_СТРОКА: XML_СОЗДАТЬ_ФАЙЛ(ТИП_СТРОКА:
файл, инструкция, имя_корня)
Создает новый XML-документ и добавляет туда заданную инструкцию и корневой
узел.
Возвращаемая строка является курсором, связанным с корневым узлом.
файл - Имя XML-файла.
инструкция - Текст инструкции xml, добавляемой в новый документ.
Например: "version='1.0' encoding='windows-1251'".
имя_корня - Имя корневого узла документа.
ФУНКЦИЯ ТИП_СТРОКА: XML_ОТКРЫТЬ_ФАЙЛ(ТИП_СТРОКА:
файл)
Открывает существующий XML-файл.
Возвращаемая строка является курсором, связанным с корневым узлом.
В случае ошибки открытия (например, когда нет указанного файла) возвращает
пустую строку.
файл - Имя XML-файла.
ФУНКЦИЯ ТИП_ЛОГИКА: XML_СОХРАНИТЬ_ФАЙЛ(ТИП_СТРОКА:
курсор[; ТИП_СТРОКА: файл])
Сохраняет XML-документ в файл.
Возвращает ДА при успешном сохранении, НЕТ - в противном
случае.
курсор - Любой курсор, связанный с документом, подлежащим сохранению.
файл - Необязательный параметр, имя файла для сохранения.
Когда, имя файла не задано, то используется имя файла,
переданное в функции XML_СОЗДАТЬ_ФАЙЛ или XML_ОТКРЫТЬ_ФАЙЛ.
ФУНКЦИЯ XML_ЗАКРЫТЬ_ФАЙЛ(ТИП_СТРОКА:
курсор)
Закрывает XML-документ и освобождает все связанные ресурсы.
При закрытии все несохраненные изменения теряются.
курсор - Любой курсор, связанный с документом, подлежащим закрытию.
ФУНКЦИЯ ТИП_СТРОКА: XML_АТРИБУТ(ТИП_СТРОКА:
курсор, имя_атрибута)
Возвращает значение атрибута для узла, связанного с курсором.
Если атрибута с заданным именем нет у данного узла, то генерирует ошибку.
курсор - Курсор, определяющий узел XML-документа.
имя_атрибута - Имя атрибута узла.
ФУНКЦИЯ ТИП_ЛОГИКА: XML_СУЩ_АТРИБУТ(ТИП_СТРОКА:
курсор, имя_атрибута)
Проверяет наличие атрибута у узла, связанного с курсором.
Возвращает ДА, если атрибут с заданным именем существует, НЕТ
- в противном случае.
курсор - Курсор, определяющий узел XML-документа.
имя_атрибута - Имя атрибута узла.
ФУНКЦИЯ XML_ЗАП_АТРИБУТ(ТИП_СТРОКА:
курсор, имя_атрибута; *: значение)
Устанавливает значение атрибута для узла, связанного с курсором.
Если такого атрибута не было, то он создается.
курсор - Курсор, определяющий узел XML-документа.
имя_атрибута - Имя атрибута узла.
значение - Значение атрибута. Может быть значением следующих типов:
строка, число, дата, время, логика.
Используется преобразование в строку, аналогичное функции СТР.
Для представления чисел, дат и т.д. в других форматах необходимо
преобразовать значение в строку с помощью сторонней функции и
передать в параметре строковое значение.
ФУНКЦИЯ ТИП_СТРОКА: XML_ТЕКСТ(ТИП_СТРОКА:
курсор)
Возвращает текст узла, связанного с курсором.
курсор - Курсор, определяющий узел XML-документа.
ФУНКЦИЯ XML_ЗАП_ТЕКСТ(ТИП_СТРОКА:
курсор; *: значение)
Устанавливает текст узла, связанного с курсором.
курсор - Курсор, определяющий узел XML-документа.
значение - Значение для формирования текста узла.
Может быть значением следующих типов: строка, число, дата,
время, логика.
Используется преобразование в строку, аналогичное функции СТР.
Для представления чисел, дат и т.д. в других форматах необходимо
преобразовать значение в строку с помощью сторонней функции и
передать в параметре строковое значение.
ФУНКЦИЯ ТИП_ЛОГИКА: XML_ПЕРЕЙТИ(ТИП_СТРОКА:
курсор; <режим>)
Осуществляет перемещение курсора в пределах XML-документа.
Конкретный вид перехода определяется параметром <режим>.
Возвращает ДА в случае успешного перехода, НЕТ - в противном
случае.
курсор - Курсор, определяющий узел XML-документа, от которого
осуществляется переход. В случае успешного выполнения
перехода этот курсор связывается с другим узлом.
<режим> - Направление перехода. Определяется ключевыми словами или
типом выражения:
КОРЕНЬ - Переход к корневому узлу XML-документа.
ВВЕРХ - Переход к родительскому узлу от дочернего.
ВНИЗ - Переход к первому дочернему узлу (если у текущего
узла есть дочерние узлы).
СЛЕД - Переход к следующему узлу на данном уровне
(если текущий узел не является последним).
ПРЕД - Переход к предыдущему узлу на данном уровне
(если текущий узел не является первым).
СПИСОК_СЛЕД - Переход к следующему одноименному узлу на
данном уровне (если текущий узел не является
последним из одноименных узлов).
СПИСОК_ПРЕД - Переход к предыдущему одноименному узлу на
данном уровне (если текущий узел не является
первым из одноименных узлов).
ТЕСТ - Осуществляет проверку текущего узла. Возвращает НЕТ,
если узел, связанный с курсором, был удален.
Также позволяет проверить существование и валидность
курсора. Не выполняет никакого перехода.
<числовое выражение> - Переход к дочернему узлу с заданной позицией
(если есть такой дочерний узел).
Нумерация дочерних узлов с 1.
<строковое выражение> - Переход к первому дочернему узлу с заданным
именем (если есть такие дочерние узлы).
ФУНКЦИЯ XML_ДОБАВИТЬ_УЗЕЛ(ТИП_СТРОКА:
курсор, имя_узла [; ТИП_ЧИСЛО: позиция])
Создает новый узел XML-документа. Узел добавляется в качестве дочернего
для текущего узла,
связанного с курсором. В результате добавления курсор связывается с новым
узлом.
Это позволяет тут же установить его текст (XML_ЗАП_ТЕКСТ) и атрибуты
(XML_ЗАП_АТРИБУТ).
При добавлении узлов в цикле, перед добавлением очередного узла необходимо
вернуть курсор
обратно к родительскому узлу вызовом XML_ПЕРЕЙТИ(курсор, ВВЕРХ).
курсор - Курсор, определяющий узел XML-документа, для которого
осуществляется добавлени дочернего узла. В результате выполнения
этот курсор связывается добавленным дочерним узлом.
имя_узла - Имя добавляемого узла.
позиция - Необязательный параметр, позиция вставки нового узла. Новый
узел
размещается перед узлом с заданной позицией. Если позиция не задана или
находится вне пределов допустимого диапазона, то новый узел добавляется
в конец.
Нумерация узлов начинается с 1.
ФУНКЦИЯ XML_УДАЛИТЬ_УЗЕЛ(ТИП_СТРОКА:
курсор)
Удаляет текущий узел курсора и все его дочерние узлы из XML-документа.
курсор - Курсор, определяющий удаляемый узел XML-документа.
В результате удаления этот курсор связывается с родительским узлом удаленного.
ФУНКЦИЯ ТИП_ЧИСЛО: XML_КОЛ_УЗЛОВ(ТИП_СТРОКА:
курсор)
Возвращает количество дочерних узлов для узла, связанного с курсором.
курсор - Курсор, определяющий узел XML-документа.
ФУНКЦИЯ ТИП_СТРОКА: XML_ИМЯ_УЗЛА(ТИП_СТРОКА:
курсор [; ТИП_ЧИСЛО: позиция])
Возвращает имя узла, связанного с курсором, или имя его дочернего узла
в заданной позиции.
курсор - Курсор, определяющий узел XML-документа.
позиция - Необязательный параметр, позиция дочернего узла. Если параметр
не задан, то
функция возвращает имя узла, связанного с курсором.
Нумерация дочерних узлов начинается с 1.
ФУНКЦИЯ ТИП_СТРОКА: XML_НОВЫЙ_КУРСОР(ТИП_СТРОКА:
курсор)
Создает новый курсор XML-документа. В результате выполнения функции
новый курсор связывается
с тем же узлом, что и исходный курсор. Но далее эти курсоры могут перемещаться
независимо,
что удобно для доступа к разным частям одного XML-документа.
курсор - Исходный курсор
|