XML.LoadFromFile
Revision as of 11:26, 16 June 2021 by 1>Admin (→Возвращаемое значение)
| LoadFromFile (Загрузка из файла) | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
Загружает 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ВПапке(аПуть);