8.х Чтение XML-файлов

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

  1. TopicStarter Overlay
    alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.767
    Симпатии:
    509
    Баллы:
    204
    Приветствую, ребята! Сто лет уже не работал с xml и вот тут вдруг понадобилось :(
    Есть файл xml такой структруры:
    • root
      • <adm1>value1</adm1>
      • <adm2>value1</adm2>
      • <adm3>value1</adm3>
      • <adm4>value1</adm4>
      • <adm5>value1</adm5>
      • <dir>
        • <dir1>val1</dir1>
        • <dir2>val2</dir2>
        • <dir3>val3</dir3>
      • <dir22>
        • <dir1>val1</dir1>
        • <dir2>val2</dir2>
        • <dir3>val3</dir3>
      • <dir44>
        • <dir1>val1</dir1>
        • <dir2>val2</dir2>
        • <dir3>val3</dir3>

    Как обработать такой файл?
    Пишу код:
    Код:
    ФайлXML = Новый ЧтениеXML;
        ФайлXML.ОткрытьФайл(ЭтотОбъект.ПутьКФайлу);
    
        Пока ФайлXML.Прочитать() Цикл
        
            Если ФайлXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
                Пока ФайлXML.ПрочитатьАтрибут() Цикл
                    Если ФайлXML.Имя = "PolicySerialKey" Тогда
                        СерияДокумента = ФайлXML.Значение;
                    ИначеЕсли ФайлXML.Имя = "PolicyNumberKey" Тогда
                        НомерДокумента = ФайлXML.Значение;
                    КонецЕсли;
                КонецЦикла;                            
            КонецЕсли;
        
        КонецЦикла;
        
        ФайлXML.Закрыть();
    Но что-то не работает :(
    Вы уж простите за такие вопросы, давно не работал в этой области :(
    Последнее редактирование: 24 авг 2016
  2. TopicStarter Overlay
    alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.767
    Симпатии:
    509
    Баллы:
    204
    Вроде бы разобрался, сделал пока вот так:
    Код:
    ФайлXML = Новый ЧтениеXML;
        ФайлXML.ОткрытьФайл(ЭтотОбъект.ПутьКФайлу);
      
        Пока ФайлXML.Прочитать() Цикл
          
            Если ФайлXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
                Имя = ФайлXML.Имя;
            КонецЕсли;
          
            Если Имя = "adm1" И ФайлXML.ТипУзла = ТипУзлаXML.Текст Тогда
                СерияПолиса = НайтиСсылку(СокрЛП(ФайлXML.Значение));
            КонецЕсли
          
        КонецЦикла;
          
        ФайлXML.Закрыть();
    Последнее редактирование: 24 авг 2016
  3. TopicStarter Overlay
    alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.767
    Симпатии:
    509
    Баллы:
    204
    Что-то поторопился с ответом. Такая конструкция не работает при вложенных узлах. Как пройтись по вложенному и вернуться обратно ?
  4. TopicStarter Overlay
    alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.767
    Симпатии:
    509
    Баллы:
    204
    Как отдельно разобрать, например, dir22?
    Кому интересно могу файлик кинуть :)
    Последнее редактирование: 24 авг 2016
  5. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104

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