Некоторая помощь по работе с xml в мобильном приложении

Это первое мое творчество, не судите строго 🙂

Столкнулся с проблемой выбора файлов в определенной папке. Погуглив наткнулся на статью //infostart.ru/public/155226/, но так как я только зарегестрировался, скачать это чудо у меня не вышло. Почитав СП нашел интересную функцию НайтиФайлы(). сел, подумал и написал своеобразный выход из ситуации. Были использованны две табличные части, две кнопки и 10 строчек кода.

Смысл моего алгоритма прост: берем конкретную папку и ищем в ней все файлы с расширением xml и записываем их в табличную часть. Потом указав галочкой нужный, парсим его во вторую табличную часть. все просто, а главное работает 🙂 

Вот код: 

&НаКлиенте
Процедура СозданиеПапки(Команда)

Объект.ДанныеОПути = «storagesdcard0data»; //»c:ss»;//
Для Каждого Элем из НайтиФайлы(Объект.ДанныеОПути,»*.xml») Цикл
ОбработкаСпискаВыбора(Элем.Имя);
КонецЦикла;

КонецПроцедуры

&НаСервере
Процедура ОбработкаСпискаВыбора(Имя)

ТЧ = Объект.Табличка.Добавить();
ТЧ.ИмяФайла = Объект.ДанныеОПути + Имя;

КонецПроцедуры

&НаКлиенте
Процедура ДругаяКоманда(Команда)
Для Каждого Стр из Объект.Табличка Цикл
Если Стр.Выбор = Истина Тогда

Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл(Стр.ИмяФайла);//(ПутьКФайлу);

// чтение осуществляется по одному тегу
Пока Чтение.Прочитать() Цикл
// анализируем тип элемента и его имя
Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
Если Чтение.Имя=»tovar» Тогда
// создаем новый элемент 
ТЧ = Объект.Данные.Добавить();
// читаем атрибуты
Пока Чтение.ПрочитатьАтрибут() Цикл
Если Чтение.Имя=»kod_tovar» Тогда
ТЧ.Код = Чтение.Значение;
ИначеЕсли Чтение.Имя = «naim_tovar» Тогда
ТЧ.Наименование = Чтение.Значение;
ИначеЕсли Чтение.Имя = «cena» Тогда
ТЧ.Цена = Чтение.Значение;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;

КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры

Надеюсь что это поможет кому-нибудь 🙂

2 Comments

  1. flyer

    вот эта строчка смущает Объект.ДанныеОПути = «storagesdcard0data»;

    для какого устройства сделал?

    вот если не поленился бы и универсальную написал бы для самых распространенных устройств вот за это спасибо и $m было бы.

    Reply
  2. ololoanonim

    (1) flyer, Писал под свой андроид, и эта строка пути была взята для тестирования.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *