Имя: Пароль:
1C
1С v8
Чтение XML
,
0 DeMi4
 
06.12.11
15:21
Помогите плиз с чтением XML

<Остатки>
- <Отделение Наименование="">
 <Товар ТоварКасса="" Остаток="7011" />
 <Товар ТоварКасса="" Остаток="4279.84" />
 <Товар ТоварКасса="" Остаток="28520" />
 <Товар ТоварКасса="" Остаток="1956" />
 <Товар ТоварКасса="" Остаток="90" />
 <Товар ТоварКасса="" Остаток="1193.5" />
 <Товар ТоварКасса="" Остаток="6005" />
 <Товар ТоварКасса="" Остаток="7698.8" />
 <Товар ТоварКасса="" Остаток="94498.6" />
 <Товар ТоварКасса="" Остаток="750" />
 <Товар ТоварКасса="" Остаток="6243" />
 <Товар ТоварКасса="" Остаток="0" />
 </Отделение>
<Отделение Наименование="">
</Отделение>
.....
</Остатки>

Код

Процедура ЗаполнитьИзФайлаСервер()
   Чтение=Новый ЧтениеXML;
   Чтение.ОткрытьФайл("d:\1.xml");
   Пока Чтение.Прочитать() Цикл

   // Прочитать "структурные части" элементов.  
   // Проверить, какая часть элемента - текущая.  
   Если Чтение.ЛокальноеИмя = СокрЛП(Объект.ОС.Наименование) Тогда
       ИмяУзла = Чтение.Имя;
       Сообщить("--" + ИмяУзла);

       // Атрибуты элементов можно читать только если текущая часть -  
       // начало элемента
       Пока Чтение.ПрочитатьАтрибут() Цикл
           ТипУзла = Чтение.ТипУзла;
           Имя = Чтение.Имя;
           Значение = Чтение.Значение;
           Сообщить("ТипУзла "+ТипУзла+" Имя "+Имя+" Значение "+Значение);
           // Обработать полученные значения.
       КонецЦикла;

       

   ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.Текст Тогда

       // В примере просто выводим текст в окно сообщений.  
       Сообщить("Текст:" + Чтение.Значение);

   ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда

       // В примере просто выводим признак конца элемента  
       // в окно сообщений Сообщить("--Конец:" + Чтение.Имя);  
   КонецЕсли;

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


Файл XML созадавал сам может не правильно создал для его дальнейшей обработки.
1 Господин ПЖ
 
06.12.11
15:22
вообще это не xml... это неведомая хня...
2 DeMi4
 
06.12.11
15:26
Возможно подскажите как лучше его структурировать
3 Eugene_life
 
06.12.11
15:27
(0) А зачем в XML-то сувать? Через Excel может? Или через текст?
4 Господин ПЖ
 
06.12.11
15:28
(2) вопрос не в том "как лучше". а в том что xml должен быть валидным... т.к. есть формат
5 andrewks
 
06.12.11
15:29
(1) вообще-то это xml. только из браузера
6 DeMi4
 
06.12.11
15:30
(3) Просто хочется изучить работу с этим типом файлов да и задача попалась для реализации.
На DBF уже наскучило
7 Господин ПЖ
 
06.12.11
15:34
(5) а у меня нет... ie не открывает
8 andrewks
 
06.12.11
15:36
(7) минус убери. он тебе его сам сделает :)
ну, и заголовок поставь.
это же фрагмент
9 DeMi4
 
06.12.11
15:37
Минус и так не мой. Скопировано из браузера просто
10 Господин ПЖ
 
06.12.11
15:37
(8) мне что дали, я то и открываю... фрагмент ли это - хз... я вижу только что вниз "оборвано", а что вверху - я не знаю
11 DeMi4
 
06.12.11
15:40
<?xml version="1.0" encoding="windows-1251"?>
<Остатки>
 <Отделение Наименование="Первое">
   <Товар ТоварКасса="Бумага" Остаток="7011"/>
   <Товар ТоварКасса="Ручка" Остаток="4279.84"/>
   <Товар ТоварКасса="Лист" Остаток="28520"/>
   <Товар ТоварКасса="Ведро" Остаток="1956"/>
   <Товар ТоварКасса="Чернила" Остаток="90"/>
   <Товар ТоварКасса="Губка" Остаток="1193.5"/>
 </Отделение>
<Отделение Наименование="Второе">
</Отделение>
...............................
</Остатки>

Всего отделений 78
12 Господин ПЖ
 
06.12.11
15:41
(11) теперь вопросов нет.
13 DeMi4
 
06.12.11
15:42
Подскажите может я не правильно структурировал выгружаемые данные.
14 DeMi4
 
06.12.11
16:20
Как реализовать чтобы можно было для каждого отделения вывести только его номенклатуру.