База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Почему пустая строка при чтении значения Vid из XML?
- В этой теме 1 ответ, 2 участника, последнее обновление 7 месяцев, 1 неделя назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
15 мая 2025 в 9:30 #32551
есть файл XML, фрагмент(начало)
-<issuance sender="590764707" xmlns="
—
ПеремещениеОптаВРозницу
24.02.2025
3000661читаю
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ПутьКФайлу);Пока ЧтениеXML.Прочитать() Цикл
Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ЧтениеXML.Имя = «Dokument» Тогда
Вид = СокрЛП(ЧтениеXML.ЗначениеАтрибута(«Vid»));Вид получаю пустую строку, где ошибка?
-
15 мая 2025 в 9:30 #32552
Ошибка заключается в том, что вы пытаетесь получить значение атрибута «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».
Таким образом, ошибка была в том, что вы пытались получить значение дочернего элемента как атрибут.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.