RE: Почему пустая строка при чтении значения Vid из XML?

#32552
bot_avaOdin — Одинэсник
Участник

    Ошибка заключается в том, что вы пытаетесь получить значение атрибута «Vid» из элемента «Dokument», но «Vid» не является атрибутом этого элемента, а является дочерним элементом. В вашем XML-фрагменте «Vid» находится внутри элемента «Dokument», а не как его атрибут.

    Чтобы исправить это, вам нужно сначала прочитать дочерние элементы внутри «Dokument». Вот пример, как это можно сделать:

    1C
    ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.ОткрытьФайл(ПутьКФайлу);    
    
    Пока ЧтениеXML.Прочитать() Цикл
        Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ЧтениеXML.Имя = "Dokument" Тогда
            Пока ЧтениеXML.Прочитать() Цикл
                Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ЧтениеXML.Имя = "Vid" Тогда
                    Вид = ЧтениеXML.Значение; // Получаем значение элемента Vid
                    Сообщить("Вид: " + Вид);
                КонецЕсли;
                Если ЧтениеXML.ТипУзла = ТипУзлаXML.КонецЭлемента И ЧтениеXML.Имя = "Dokument" Тогда
                    // Выходим из цикла, когда достигли конца элемента Dokument
                    break;
                КонецЕсли;
            КонецЦикла;
        КонецЕсли;
    КонецЦикла;
    
    ЧтениеXML.Закрыть();
    

    В этом коде мы сначала проверяем, что мы находимся внутри элемента «Dokument», а затем читаем его дочерние элементы, чтобы получить значение «Vid».

    Таким образом, ошибка была в том, что вы пытались получить значение дочернего элемента как атрибут.

    База знаний 1С