[РЕШЕНО] Как разобрать файл XML

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем TerANik, 20 апр 2015.

  1. TopicStarter Overlay
    TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    Доброго времени суток, друзья и коллеги.
    В общем проблема следующая.. есть регистр сведений с реквизитом типа строка.. Сейчас хочу уйти от этого реквизита и перейти на реквизиты типа справочник ссылка. Так вот данный реквизит содержит что то типа куска xml файла.
    Так вот сделал два измерения "Серия" и "Модель" и теперь надо распарсить данную строку и найдя соотвествующие элементы справочника сделать записи в регистр.

    Так вот что делаю, создаю текстовый документ записываю его во временные файлы и оттуда открывают Чтение XML, вот в общем то код

    Код:
        Пока Выборка.Следующий() Цикл
            Если СтрДлина(Выборка.ДоступныеМодели) Тогда
                ИмяФайла  = ПолучитьИмяВременногоФайла("xml");
                ФайлXML  = Новый ЧтениеXML;
                ФайлТекст = Новый ТекстовыйДокумент;
                ФайлТекст.ДобавитьСтроку("<?xml version=""1.0"" encoding=""UTF-8""?>");
                ФайлТекст.ДобавитьСтроку(ДоступныеМодели);
                ФайлТекст.Записать(ИмяФайла);
                Сообщить(ФайлТекст.ПолучитьТекст());
                ФайлXML.ОткрытьФайл(ИмяФайла);
                Пока ФайлXML.Прочитать() Цикл
                    Если ФайлXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
                        Сообщить("<" + ФайлXML.Имя + ">");
                        Пока ФайлXML.ПрочитатьАтрибут() Цикл
                            Сообщить(ФайлXML.Имя + " = " + ФайлXML.Значение);
                        КонецЦикла;
                    КонецЕсли;
                    Если ФайлXML.ТипУзла = ТипУзлаXML.Текст Тогда
                        Сообщить(ФайлXML.Значение);
                    КонецЕсли;
                    Если ФайлXML.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
                        Сообщить("");
                    КонецЕсли;
                КонецЦикла;
                ФайлXML.Закрыть();
            КонецЕсли;
        КонецЦикла;
    в итоге все это падает вот в эту ошибку , куда копать?

    Вот что получается в текстовом файле в результате, может быть я не доконца оформил XML добавив одну строку только?

    Код:
    <?xml version="1.0" encoding="UTF-8"?>
    <Серия Наименование="SUPER OMEGA">
        <Модель>"SUPER OMEGA 01"</Модель>
        <Модель>"SUPER OMEGA 02"</Модель>
        <Модель>"SUPER OMEGA RX"</Модель>
        <Модель>"SUPER OMEGA STL RX"</Модель>
    </Серия>
    <Серия Наименование="SUPER ALFA">
        <Модель>"нет"</Модель>
    </Серия>
  2. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    TerANik я ж в чате в пятницу писал.
    --- Объединение сообщений, 20 апр 2015 ---

    1. Пятница в 16:37 -shurikvz: TerANik в таком виде в xml не разберет
    2. shurikvz:TerANik корень нужен
    3. shurikvz:в той строке его нету. У xml документа только один главный элемент может быть, а у тебя получается их несколько
    4. shurikvz:"Серия" я имею ввиду
    5. shurikvz:оберни это все еще в один тэг, и все должно прочитаться
    6. [shurikvz:ну в смысле <рутэлемент><серия></серия> <серия></серия> <серия></серия>.... </рутэлемент>
    TerANik нравится это.
  3. TopicStarter Overlay
    TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    Благодартсвую за беспокойство)) У меня рабочий день до 16:00) Сейчас попробую.

    Вери гут, добавил главный узел и все пошло
    Последнее редактирование: 20 апр 2015
Похожие темы
  1. clayton
    Ответов:
    14
    Просмотров:
    5.369
  2. Сандра
    Ответов:
    12
    Просмотров:
    2.557
  3. OlegSol
    Ответов:
    12
    Просмотров:
    1.999
  4. Sf_by_YaphetS
    Ответов:
    6
    Просмотров:
    1.018
  5. К_Е
    Ответов:
    27
    Просмотров:
    1.798
Загрузка...

Поделиться этой страницей