Вход | Регистрация


Помогите с чтением xml

Помогите с чтением xml
Я
   katerinaUniv
 
19.09.16 - 08:41
Ошибка extra content at the end of document

файл выглядит так:
<?xml version="1.0" encoding="UTF-8"?>
<Корень>
    <Документ>
        <Строка Номенклатура="Лазерная эпиляция тотальное бикини" Количество="1" КоличествоУпаковок="1" Цена="6 000" Сумма="6 000" СтавкаНДС="Без НДС" СуммаНДС="0" Всего="6 000"/>
        <Строка Номенклатура="Спа-программа &quot;Зеленый чай&quot;" Количество="1" КоличествоУпаковок="1" Цена="2 700" Сумма="2 700" СтавкаНДС="Без НДС" СуммаНДС="0" Всего="2 700"/>
        <Строка Номенклатура="Пилинг желтый ММ" Количество="1" КоличествоУпаковок="1" Цена="5 000" Сумма="5 000" СтавкаНДС="Без НДС" СуммаНДС="0" Всего="5 000"/>
        <Строка Номенклатура="Антицеллюлитный массаж 1 зона" Количество="1" КоличествоУпаковок="1" Цена="750" Сумма="750" СтавкаНДС="Без НДС" СуммаНДС="0" Всего="750"/>
        <Строка Номенклатура="Антицеллюлитный массаж 1 зона" Количество="1" КоличествоУпаковок="1" Цена="750" Сумма="750" СтавкаНДС="Без НДС" СуммаНДС="0" Всего="750"/>
        <Строка Номенклатура="Антицеллюлитный массаж 1 зона" Количество="1" КоличествоУпаковок="1" Цена="750" Сумма="750" СтавкаНДС="Без НДС" СуммаНДС="0" Всего="750"/>
        <Строка Номенклатура="Лазерная эпиляция ноги комплекс" Количество="1" КоличествоУпаковок="1" Цена="9 400" Сумма="9 400" СтавкаНДС="Без НДС" СуммаНДС="0" Всего="9 400"/>
        <Строка Номенклатура="Препаратная чистка" Количество="1" КоличествоУпаковок="1" Цена="2 300" Сумма="2 300" СтавкаНДС="Без НДС" СуммаНДС="0" Всего="2 300"/>
        <Строка Номенклатура="Препаратная чистка" Количество="1" КоличествоУпаковок="1" Цена="2 300" Сумма="2 300" СтавкаНДС="Без НДС" СуммаНДС="0" Всего="2 300"/>
    </Документ>
 
 
   katerinaUniv
 
1 - 19.09.16 - 08:42
код по загрузке так:
   katerinaUniv
 
2 - 19.09.16 - 08:42
док = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
                док.Организация = объект.Организация;
                док.Дата = объект.ДатаКон;
                док.ВидОперации = Перечисления.ВидыОперацийРеализацияТоваров.Услуги;
                док.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("цена продажи");
                док.ВалютаДокумента = Справочники.Валюты.НайтиПоНаименованию("руб");
                док.КурсВзаиморасчетов = 1;
                док.КратностьВзаиморасчетов = 1;
                док.СуммаВключаетНДС = Ложь;
                док.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.01");
                док.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.02");
                док.ПодразделениеОрганизации = объект.Подразделение;
                док.Склад = объект.Склад;
                док.Записать();

    XML = Новый ЧтениеXML;
    XML.ОткрытьФайл(объект.ПутьКФайлу + "\real.xml");
    Пока XML.Прочитать() Цикл
        Если XML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
            Сообщить("<" + XML.Имя + ">");
            Если XML.Имя = "Строка" Тогда
                Номенклатура = "";
                Количество = "";
                КоличествоУпаковок = "";
                Цена = "";
                Сумма = "";
                СтавкаНДС = "";
                СуммаНДС = "";
                Всего = "";
                                
                Пока XML.ПрочитатьАтрибут() Цикл
                    Сообщить(XML.Имя + " = " + XML.Значение); 
                    Если XML.Имя = "Номенклатура" Тогда
                        Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(Строка(XML.Значение)));
                    КонецЕсли;
                    Если XML.Имя = "Количество" Тогда
                        Количество = Число(XML.Значение);
                    КонецЕсли;
                    Если XML.Имя = "КоличествоУпаковок" Тогда
                        КоличествоУпаковок = Число(XML.Значение);
                    КонецЕсли;
                    Если XML.Имя = "Цена" Тогда
                        Цена = Число(XML.Значение);
                    КонецЕсли;
                    Если XML.Имя = "Сумма" Тогда
                        Сумма = Число(XML.Значение);
                    КонецЕсли;
                    Если XML.Имя = "СтавкаНДС" Тогда
                        ставкаНДСстр = СокрЛП(Строка(XML.Значение));
                        Если СтавкаНДСстр = "18/118" ИЛИ СтавкаНДСстр = "18" Тогда
                            ставкаНДС = Перечисления.СтавкиНДС.НДС18;
                        ИначеЕсли СтавкаНДСстр = "10/110" ИЛИ СтавкаНДССтр = "10" Тогда
                            ставкаНДС = Перечисления.СтавкиНДС.НДС10;
                        ИначеЕсли СтавкаНДССтр = "Без НДС" Тогда
                            ставкаНДС = Перечисления.СтавкиНДС.БезНДС;
                        Иначе
                            ставкаНДС = Перечисления.СтавкиНДС.НДС0;
                        КонецЕсли;
                    КонецЕсли;
                    Если XML.Имя = "СуммаНДС" Тогда
                        СуммаНДС = Число(XML.Значение);
                    КонецЕсли;
                    Если XML.Имя = "Всего" Тогда
                        Всего = Число(XML.Значение);
                    КонецЕсли;
                    
                КонецЦикла;
                
                //пишем новую строку реализации

                нСтрока = док.Услуги.Добавить();
                нСтрока.Номенклатура = номенклатура;
                нСтрока.Количество = Количество;
                нСтрока.Цена = цена;
                нСтрока.Сумма = Сумма;
                Если ставкаНДС = Перечисления.СтавкиНДС.БезНДС Или ставкаНДС = Перечисления.СтавкиНДС.НДС0 Тогда
                    нСтрока.СуммаНДС = 0;
                ИначеЕсли ставкаНДС = Перечисления.СтавкиНДС.НДС18 Или ставкаНДС = Перечисления.СтавкиНДС.НДС18_118 Тогда
                    нСтрока.СуммаНДС = Окр(нСтрока.Сумма * 0.18,2);
                ИначеЕсли ставкаНДС = Перечисления.СтавкиНДС.НДС10 Или ставкаНДС = Перечисления.СтавкиНДС.НДС10_110 Тогда
                    нСтрока.СуммаНДС = Окр(нСтрока.Сумма * 0.1, 2);
                КонецЕсли;
                нСтрока.СтавкаНДС = СтавкаНДС;
                нСтрока.СчетДоходов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.01.1");
                нСтрока.СчетРасходов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.1");
                док.Записать();
            КонецЕсли;
            
            //Если XML.ТипУзла = ТипУзлаXML.Текст Тогда

            //    Сообщить(XML.Значение); 

            //КонецЕсли;

            //

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

            //    Сообщить("");

            //КонецЕсли; 

        КонецЕсли;
    КонецЦикла; 
    
    XML.Закрыть();
   mehfk
 
3 - 19.09.16 - 08:46
   katerinaUniv
 
4 - 19.09.16 - 08:56
но у меня все нормально вроде бы написано...
   katerinaUniv
 
5 - 19.09.16 - 08:56
я знаю что это
   katerinaUniv
 
6 - 19.09.16 - 08:56
но все теги закрытые и ровные
   mehfk
 
7 - 19.09.16 - 09:00
Открой XML браузером.
   Адинэснег
 
8 - 19.09.16 - 14:08
а где </Корень> ?
   mehfk
 
9 - 19.09.16 - 17:50
(8) "Семён Семёныч!" (С)

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует