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ВПапке(аПуть);