Читаю XML файл, по порядку снизу вверх выдёргиваю из файла значение параметров. Но, если данный параметр не находится, из-за того что он по другому назван или ещё чего. То чтение всё продолжается и доходит до конца файла. А после этого ещё были параметры которые необходимо считать. Подскажите как сделать чтение по правильному? Код: Пока ЧтениеXML.Прочитать()Цикл ИмяУзла = ЧтениеXML.ЛокальноеИмя; Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ИмяУзла = "Height" Тогда ЧтениеXML.Прочитать(); Высота = ПолучитьТекстЭлементаХМЛ(ЧтениеXML); Прервать; КонецЕсли; КонецЦикла; Возврат(Высота);
Не совсем понятно. У вас сама логика работы функции такая, что выход из цикла чтения происходит только если найден узел Height. Если он не найден возвращается ммм... думаю возвращается 0 (или пустая строка, или неопределено... хз). Инициализации переменной "Высота" по умолчанию не вижу. А что надо получить?
А... думаю понял что хотите... Заведите в этой функции структуру с необходимыми параметрами, присвойте значение по умолчанию. Читайте весь файл (т.е. Прервать уберите и добавьте соответствующие условия), заполняйте соответствующее значение структуры найденными параметрами, в конце возвращайте структуру, а не одно свойство.
Код: СтруктураПараметров=Новый Структура; СтруктураПараметров.Вставить("Height" ,10); СтруктураПараметров.Вставить("Width" ,100); СтруктураПараметров.Вставить("Length" ,10); СтруктураПараметров.Вставить("Depth" ,10); ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.ОткрытьФайл("bla bla bla"); Пока ЧтениеXML.Прочитать()Цикл ИмяУзла = ЧтениеXML.ЛокальноеИмя; Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда Если ИмяУзла = "Height" ЧтениеXML.Прочитать(); СтруктураПараметров.Height = ПолучитьТекстЭлементаХМЛ(ЧтениеXML); Продолжить; КонецЕсли; Если ИмяУзла = "Width" ЧтениеXML.Прочитать(); СтруктураПараметров.Width = ПолучитьТекстЭлементаХМЛ(ЧтениеXML); Продолжить; КонецЕсли; Если ИмяУзла = "Length" ЧтениеXML.Прочитать(); СтруктураПараметров.Length = ПолучитьТекстЭлементаХМЛ(ЧтениеXML); Продолжить; КонецЕсли; Если ИмяУзла = "Depth" ЧтениеXML.Прочитать(); СтруктураПараметров.Depth = ПолучитьТекстЭлементаХМЛ(ЧтениеXML); Продолжить; КонецЕсли; КонецЕсли; КонецЦикла; Возврат(СтруктураПараметров); как-то так попробуйте.. не проверял..