|
Дополнительно вычитать из XML дополнительную информацию в дерево... | ☑ | ||
---|---|---|---|---|
0
SkillUp
25.09.18
✎
08:45
|
Есть XML, который перевожу в дерево.
XML: <category id="17" parentId="9">Аксессуары для устройств контроля доступа</category> <category id="11" parentId="10">Электромеханические замки</category> <category id="12" parentId="10">Электромагнитные замки</category> "category id" - получаю, но мне надо и "parentId". Пользуюсь кодом: Функция ЧтениеXMLВДерево(Путь) Дерево = Новый ДеревоЗначений; Дерево.Колонки.Добавить("Имя"); Дерево.Колонки.Добавить("Значение"); XMLФайл = Новый ЧтениеXML; XMLФайл.ОткрытьФайл(Путь); ПрочитатьXMLПоТегам(XMLФайл, Дерево.Строки); XMLФайл.Закрыть(); Возврат Дерево; КонецФункции Процедура ПрочитатьXMLПоТегам(XMLФайл, ТекущийНаборСтрок) Пока XMLФайл.Прочитать() Цикл Если XMLФайл.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда НоваяСтрока = ТекущийНаборСтрок.Добавить(); НоваяСтрока.Имя = XMLФайл.Имя; НоваяСтрока.Значение = ""; Пока XMLФайл.ПрочитатьАтрибут() Цикл НоваяСтрокаАтрибут = НоваяСтрока.Строки.Добавить(); НоваяСтрокаАтрибут.Имя = XMLФайл.Имя; НоваяСтрокаАтрибут.Значение = СокрЛП(XMLФайл.Значение); КонецЦикла; ПрочитатьXMLПоТегам(XMLФайл, НоваяСтрока.Строки); ИначеЕсли XMLФайл.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда Возврат; ИначеЕсли XMLФайл.ТипУзла = ТипУзлаXML.Текст Тогда ТекущийНаборСтрок.Родитель.Значение = СокрЛП(XMLФайл.Значение); Иначе Сообщить("Тип узла: " + XMLФайл.ТипУзла + " НЕ ОБРАБОТАН", СтатусСообщения.Важное); Конецесли; КонецЦикла; КонецПроцедуры Как в дерево теперь добавить "parentId"? Фиг его знает ,если кто-то подскажет пути решения или пример, голову ломаю, не знаю как решить? Неужели переписывать полностью обход XML, а вместе с ней и всю обработку? ( |
|||
1
SkillUp
25.09.18
✎
08:46
|
В примере только нужная часть кода, сам XML очень большой )
|
|||
2
d4rkmesa
25.09.18
✎
08:49
|
(0) Структуру или соответствие пиши в дерево в "Значение".
|
|||
3
SkillUp
25.09.18
✎
08:52
|
(2) О! Точно...
|
|||
4
SkillUp
25.09.18
✎
08:53
|
(2) А есть примеры?
|
|||
5
SkillUp
25.09.18
✎
08:55
|
Все, нашел...
|
|||
6
d4rkmesa
25.09.18
✎
09:13
|
(5) Пример есть в типовом обмене через ЭДО. Правда, там используется XDTO.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |