Difference between revisions of "XML.LoadFromFile"

From SunFlurry wiki
Jump to: navigation, search
1>Admin
(Возвращаемое значение)
 
m (1 revision imported)
 
(No difference)

Latest revision as of 09:06, 28 June 2021

  LoadFromFile (Загрузка из файла)
Объект:Объект XML
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в строку, число, файл не найден, системная ошибка.
Визуальность:Нет

Загружает XML-объект из файла, если файл содержит ошибки форматирования, загрузка будет остановлена и функция возвратит список ошибок в виде строки со знаками переноса на другую строку. До загрузки файла все данные, хранившиеся в XML-объекте будут удалены и объект будет очищен.

Синтаксис

XML.LoadFromFile(<Имя файла (STRING)>,<Кодовая страница (INT)>=-1):<Ошибки при загрузке файла (STRING)>

Аргументы

  • <Имя файла (STRING)> - Аргумент задает путь и имя файла для загрузки. Путь может быть как серверным и так и локальным (Имена файлов).
  • <Кодовая страница (INT)> - (необязательный аргумент) Кодовая страница может принимать сл. значения: -1 (по умолчанию) -- всегда загружать файл в ANSI, 0 -- загружать файл в ANSI, если он не имеет BOM, иначе загружать согласно BOM, в случае других значений аргумента, последний задает кодовую страницу в которой хранится файл. Многие документы XML имеют указание на используемую кодовую страницу, однако, на данный момент система не использует эту информацию из файла. Чаще всего используется кодовая страница 65001 (UTF-8).

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

Возвращает список ошибок в виде строки, разделенной знаками переноса строк, либо пустую строку, если ошибки не произошло. Важно: если функция возвратила ошибку, документ не был загружен полностью и не будет иметь структуры (обход по веткам документа будет невозможен).

Примеры

  Function _ПроверитьКорректностьXMLВПапке(аПуть)
    Form.StatusText("Подсчитывается "+аПуть+"...");
    aList:=File.LoadFileNames(аПуть+"*.*");
    For i:=1 To aList.Size() Do
      аФайл:=aList.GetName(i);
      If File.IsDirectory(аПуть+аФайл) Then
        //Исключаем ссылки на другие папки (к примеру "Application Data" ссылается на себя же и т.п.)
        If File.GetFileAttributes(аПуть+аФайл) And _FILE_ATTRIBUTE_REPARSE_POINT=0 Then
          _ПроверитьКорректностьXMLВПапке(AddBackslash(аПуть+аФайл));
        EndIf;
      Else
        If Uppercase(GetExt(аФайл))="XML" Then
          аОб:=XML.Create();
          //Подразумевается, что все документы сохранены в формате UTF-8, для более подробного разбора, см. LoadFromString
          Стр:=аОб.LoadFromFile(аПуть+аФайл,65001);
          If not IsEmpty(Стр) Then
            Message("Ошибки при проверке файла "+(аПуть+аФайл)+":"+_NEWLINE+Стр,"!");
          EndIf;
        EndIf;
      EndIf;
    EndDo;
  EndFunction

аПуть:="C:\";
_ПроверитьКорректностьXMLВПапке(аПуть);