Страница 5 из 5

Класс tXML (интерфейс для штатного CpXML)

Добавлено: 20 Октябрь 2023, 9:50
gopstop2007
С группами уже так на манипулировался, как только не ставил, не едут лыжи (
Считывать значения с вложенными атрибутами не хочет (

Класс tXML (интерфейс для штатного CpXML)

Добавлено: 20 Октябрь 2023, 10:20
Игорь Столяров
Прекрасный снимок - вообще всё видно и понятно ... ;)

Если хотите, что бы я посмотрел распарс - сделайте пожалуйста рабочий пример с фрагментом Ваших данных.
Что бы была видна проблема - например как идущий в комплекте пример использования класса.
Собрал - и видно как работает.
gopstop2007 писал(а): 20 Октябрь 2023, 9:50 С группами уже так на манипулировался
Метод хаотичной комбинаторики имеет вероятностный результат, недавно в теме про АТОЛ10 обсуждали. :)

Класс tXML (интерфейс для штатного CpXML)

Добавлено: 20 Октябрь 2023, 10:53
gopstop2007
C10 ABC

Класс tXML (интерфейс для штатного CpXML)

Добавлено: 20 Октябрь 2023, 13:05
Игорь Столяров
Смешанное чувство. :)
Всё работает правильно ... но в Вашем примере получается что имя тега - это имя самой группы в которой находится тег.
Т.е. в концепте класса нужно поле для значения самой группы - ну создадим его искусственно указав особое имя "#".

Добавил строку для обработки таких полей в рекурсивный метод GroupDeadLoop() - там и старый и новый вариант, если интересно.
А пример (каким он должен быть) с разбором Вашего XML прикреплён к сообщению. Посмотрите пожалуйста. ;)

Класс tXML (интерфейс для штатного CpXML)

Добавлено: 20 Октябрь 2023, 13:37
gopstop2007
Игорь Столяров писал(а): 20 Октябрь 2023, 13:05 Смешанное чувство. :)
Всё работает правильно ... но в Вашем примере получается что имя тега - это имя самой группы в которой находится тег.
Т.е. в концепте класса нужно поле для значения самой группы - ну создадим его искусственно указав особое имя "#".

Добавил строку для обработки таких полей в рекурсивный метод GroupDeadLoop() - там и старый и новый вариант, если интересно.
А пример (каким он должен быть) с разбором Вашего XML прикреплён к сообщению. Посмотрите пожалуйста. ;)
Спасибо большое, работает :ty: У меня тоже смешанное чувство :D

Класс tXML (интерфейс для штатного CpXML)

Добавлено: 20 Октябрь 2023, 15:50
gopstop2007
Еще вопрос, как обрабатывать в одном тэге элементы с одинаковым именем и переменным количеством значений, как на рисунке?

Класс tXML (интерфейс для штатного CpXML)

Добавлено: 20 Октябрь 2023, 16:04
Игорь Столяров
Посмотрите пожалуйста как в примере сделана загрузка кодов товаров (КИЗ) в строках содержания накладной.
Нужно будет сделать привязку по ID группы (насколько я вижу - в Вашем примере такое поле есть).

Класс tXML (интерфейс для штатного CpXML)

Добавлено: 28 Октябрь 2023, 10:26
gopstop2007
Игорь Столяров писал(а): 20 Октябрь 2023, 16:04 Посмотрите пожалуйста как в примере сделана загрузка кодов товаров (КИЗ) в строках содержания накладной.
Нужно будет сделать привязку по ID группы (насколько я вижу - в Вашем примере такое поле есть).
Посмотрел Ваш пример и попробовал разные варианты, у меня к сожалению не получилось, нет тэг-а <НомСредИдентТов> как в Вашем примере для <picture> и <НомСтр> выше этого тег-а, чем в id, в данном случае пример не помог :(

Код: Выделить всё

<СведТов НомСтр="3" НаимТов="Монитор Samsung 14 дюйм" ОКЕИ_Тов="796" КолТов="2" ЦенаТов="13000" СтТовБезНДС="26000" НалСт="20%" СтТовУчНал="31200">
	...
	<НомСредИдентТов>
		<КИЗ>SU-430302-XYZ12345</КИЗ>
                <КИЗ>SU-123456-XYZ78905</КИЗ>
                 <КИЗ>SU-098765-XYZ43210</КИЗ>
	</НомСредИдентТов>
	...
</СведТов>	

Код: Выделить всё

<offer id="1976395011" available="true">
    ...	
    <picture>https://images.prom.ua/4162249821_vudilische-serfove-shark.jpg</picture>
    <picture>https://images.prom.ua/4162249819_vudilische-serfove-shark.jpg</picture>
    <picture>https://images.prom.ua/4162249822_vudilische-serfove-shark.jpg</picture>
    ...
</offer>    
    

Класс tXML (интерфейс для штатного CpXML)

Добавлено: 28 Октябрь 2023, 18:08
Игорь Столяров
Делайте пример - посмотрим. Если хотите, конечно.
Как делается пример для теста - см. мой предыдущий ответ.

Класс tXML (интерфейс для штатного CpXML)

Добавлено: 29 Октябрь 2023, 11:08
gopstop2007
Игорь Столяров писал(а): 28 Октябрь 2023, 18:08 Делайте пример - посмотрим. Если хотите, конечно.
Как делается пример для теста - см. мой предыдущий ответ.
В этом примере несколько вариантов поиска решения

Класс tXML (интерфейс для штатного CpXML)

Добавлено: 29 Октябрь 2023, 22:53
Игорь Столяров
В принципе всё тоже самое, что и в прошлый раз. А именно вот в таком XML:

Код: Выделить всё

<offer id="967238804" available="true" group_id="21174">
<url>https://internet-magazin-fishbag.prom.ua/ua/p967238804-silikon-red-river.html</url>
<price>31.9</price>
<currencyId>UAH</currencyId>
<categoryId>63870577</categoryId>
<picture>https://images.prom.ua/2445556564_silikon-red-river.jpg</picture>
<picture>https://images.prom.ua/2445555860_silikon-red-river.jpg</picture>
<picture>https://images.prom.ua/2445555406_silikon-red-river.jpg</picture>
<picture>https://images.prom.ua/1779180268_silikon-red-river.jpg</picture>
<pickup>true</pickup>
<delivery>true</delivery>
<name>Силікон Red River Bass col.wx018 size:45 mm 10 шт.</name>
<description>Силікон </description>
<param name="Цвет">Красный</param>
</offer>
конструкция "<picture>...</picture>" - это не вложенная группа, а просто повторение значения тега "picture".
Одно значение загружается просто как поле в c именем "Picture" - это понятно.
Для приёма списка значений нужно вводить отдельное правило, что поле "Picture" - что это список значений
с привязкой по Id и при распарсе формировать такой список из двух полей (id + значение). Сейчас такого нет. :(