|
Работа с XML ничего нового не появилось? | ☑ | ||
---|---|---|---|---|
0
Kongo2019
14.07.22
✎
13:32
|
Работа с XML ничего нового не появилось?
Какие тенденции. Может 1С чего нового придумала. Или все по прежнему,ПостроительDOM и погнали. |
|||
1
СеменовСемен
14.07.22
✎
13:34
|
А чего не хватает. 100500 способов же есть
|
|||
2
СеменовСемен
14.07.22
✎
13:34
|
А тенденция переходить на жсон
|
|||
3
Kongo2019
14.07.22
✎
13:37
|
Дык мне контрагенты XML шлют.
|
|||
4
Kassern
14.07.22
✎
13:45
|
(3) Есть ФабрикаXDTO Есть ЧтениеXML как хочешь, так и парсишь
|
|||
5
СеменовСемен
14.07.22
✎
13:57
|
Небольшие удобнее через фабрику
|
|||
6
NorthWind
14.07.22
✎
14:03
|
(0) а чего нового там может появиться? Технологии уже 20 с лишним лет...
|
|||
7
Ненавижу 1С
гуру
14.07.22
✎
14:04
|
LINQ to XML не завезли, да
|
|||
8
Мультук
гуру
14.07.22
✎
14:05
|
(0)
Имхо, всё что есть "у взрослых" - есть в 1С. Какие тут еще тенденции. P.S. Лучше бы им кто pandas из питона показал, а то таблицаЗначений уже печалит... |
|||
9
Гений 1С
гуру
14.07.22
✎
15:00
|
(0) я писал свой разбор XML. На клиенте работает и на сервере. Гонит в соответствие. Разбирает через чтение XML. Удобнее чем DOM
|
|||
10
Гений 1С
гуру
14.07.22
✎
15:02
|
(6) то что в 1с по XML - это боль и отвращение.
Даже если DOM заюзать, нет банальных частых функций для поиска тега, атрибута, приходится свою обвязку писать. Не говоря уже о том, что DOM для больших файлов. и было бы интересно использовать чтение для нахождения нужного объеекта в XML, а его уже парсить через DOM. Но всё это не для 1С, там пипл и так схавает. |
|||
11
Kassern
14.07.22
✎
15:05
|
(10) Ну так грузи в ДЗ и по нему штатными методами ищи нужные строки, в чем проблема?
|
|||
12
Мультук
гуру
14.07.22
✎
15:21
|
(10) XPATH
|
|||
13
СеменовСемен
14.07.22
✎
15:48
|
(9) чем это лучше объекта xdto ?
|
|||
14
NorthWind
14.07.22
✎
15:55
|
(13) несколько дней вдуплять не надо. Все же хдто крайне тугая и непрозрачная вещь
|
|||
15
NorthWind
14.07.22
✎
15:56
|
хотя, в принципе, после того как в общих чертах дойдет как оно работает - вроде ничего. Но произошло это у меня, например, небыстро.
|
|||
16
Kassern
14.07.22
✎
16:04
|
(14) Тут скорее всего идет речь о Данные=ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
|
|||
17
Ненавижу 1С
гуру
14.07.22
✎
16:25
|
(9) и что является ключом?
|
|||
18
Kassern
14.07.22
✎
16:26
|
(17) имя тега скорее всего. Соответствие в этом плане гораздо лояльней структуры)
|
|||
19
Ненавижу 1С
гуру
14.07.22
✎
16:29
|
(18) теги могут иметь одинаковые имена
|
|||
20
Kassern
14.07.22
✎
16:30
|
(19) на одном уровне?
|
|||
21
Ненавижу 1С
гуру
14.07.22
✎
16:31
|
(20) прикинь:
|
|||
22
Ненавижу 1С
гуру
14.07.22
✎
16:31
|
<Items>
<Item> <Id>ba802a29-c410-11ea-8124-a4bf01001a4c</Id> <Transit>0</Transit> <Quantity>1</Quantity> <DiscountSum>0</DiscountSum> </Item> <Item> <Id>506a3a52-88b7-11eb-812d-a4bf01001a4b</Id> <Transit>0</Transit> <Quantity>2</Quantity> <DiscountSum>0</DiscountSum> </Item> <Item> <Id>506a3a54-88b7-11eb-812d-a4bf01001a4b</Id> <Transit>0</Transit> <Quantity>1</Quantity> <DiscountSum>0</DiscountSum> </Item> <Item> <Id>f6efb9e0-7639-11e9-80fb-a4bf01001a4c</Id> <Transit>0</Transit> <Quantity>2</Quantity> <DiscountSum>0</DiscountSum> </Item> <Item> <Id>ec6e53be-7639-11e9-80fb-a4bf01001a4c</Id> <Transit>0</Transit> <Quantity>2</Quantity> <DiscountSum>0</DiscountSum> </Item> </Items> |
|||
23
Гений 1С
гуру
14.07.22
✎
16:31
|
(11) примерно так и делаю, только соответствие пошустрее дерева будет и на клиенте тоже существует
|
|||
24
Kassern
14.07.22
✎
16:32
|
(22) ну так каждый блок <Item> это отдельное соответствие. А в Items массив соответствий
|
|||
25
Kassern
14.07.22
✎
16:33
|
А вот если будет условно:
<Item> <Id>123</Id> <Id>234</Id> <Transit>0</Transit> <Quantity>2</Quantity> <DiscountSum>0</DiscountSum> </Item> То вроде не даст так записать xml, и в соответствие так же не прочитать. Вот что я имел под "на одном уровне" |
|||
26
Ненавижу 1С
гуру
14.07.22
✎
16:34
|
(25) это одно и тоже и даст таки записать
|
|||
27
Гений 1С
гуру
14.07.22
✎
16:36
|
Подымал эту тему в Требуется обработать файл XML Enterprise Data (выгрузка из Мой склад) чем лучше?
(13) лучше тем, что XML может не соответствовать объекту XDTO, не нужна типизация. (24) (17) Вот код, смотрите сами:
И пример применения, прозрачно на мой взгляд, можете переписать это все на XPATH, ггг....
Этот код проверен на больших файлах, 26 Мб. |
|||
28
Гений 1С
гуру
14.07.22
✎
16:37
|
Соответствие юзаю только потому, что XML-теги могут не быть идентификаторами. ;-) так бы можно было юзать структуры.
|
|||
29
Ненавижу 1С
гуру
14.07.22
✎
16:39
|
(27) соответствие только атрибуты, а сам XML у тебя массив, учись выражать мысли
|
|||
30
Гений 1С
гуру
14.07.22
✎
16:40
|
(29) буквоедство болезнь мозга, падлечися Петровна
|
|||
31
СеменовСемен
14.07.22
✎
16:40
|
(27) фабрика умеет читать в объект без схемы. Все значения будут строками
|
|||
32
Ненавижу 1С
гуру
14.07.22
✎
16:42
|
(30) ты совсем уже с катушек съехал, если черное называешь белым и при этом говоришь, что это буквоедство
|
|||
33
Гений 1С
гуру
14.07.22
✎
16:43
|
(31) если нет схемы, тогда проще поднять DOM и не мучаться, не? Или там какие-то волшебные инструменты поиска, лучше чем XPath? ггг. Может с фабрикой код проще, не?
|
|||
34
Kassern
14.07.22
✎
16:44
|
(26) если будет несколько тегов с одним именем, то их можно под один ключ, а в значение массив значений.
|
|||
35
Гений 1С
гуру
14.07.22
✎
16:44
|
(32) еще раз напоминаю тебе про буквоедство. Мы не на научном симпозиуме, чтобы я в буквы попадал. Раз у тебя возникли сомнения, я тебе предоставил код. Не ной. Буквоедство - плохо.
|
|||
36
Kassern
14.07.22
✎
16:45
|
(34) примерно так делает ФабрикаXDTO
|
|||
37
Гений 1С
гуру
14.07.22
✎
16:45
|
(25) соответствие нельзя тут использовать, т.к. у него не гарантирован порядок обратного обхода.
т.е. если я взял XML, разобрал, я должен потом собрать 1:1 аналогичный XML. А соответствие шалит с порядком. |
|||
38
Гений 1С
гуру
14.07.22
✎
16:47
|
(36) ну я кстати не против, надо как-нибудь поюзать. Вроде там ОбъектXDTO - это полу-коллекция и там есть простые инструменты для поиска тегов по имени (или нет)?
Но все это из-за того, что XPAth и XDTO не имеет должных методов поиска. Приходится обвязку из процедур писать, чтобы код был лаконичным. Вот как у меня функции НайтиТегXML, НайтиЗначениеТегаXML |
|||
39
Kassern
14.07.22
✎
16:47
|
(37) я не припомню случая, когда порядок нужен был в блоке item. Сколько я товаров не парсил, вообще пофиг, count в начале, или price
|
|||
40
Kassern
14.07.22
✎
16:48
|
да вообще не припомню, чтобы порядок важен был. Даже когда загружал структуру каталогов, всегда можно было создать объект с заданным гуидом, а потом его уже заполнить как надо.
|
|||
41
Гений 1С
гуру
14.07.22
✎
16:49
|
(39) в XDTO порядок важен, у меня как-то через универсальную выгрузку не грузились данные в другую базу, т.к. я реквизит добавил не в том порядке в эту базу. Увидел, что реквизита нет, добавил, но не в нужном порядке. Это понятно, что косяк реализации XDTO от 1С, но все же с тех пор я блюду порядок
|
|||
42
Гений 1С
гуру
14.07.22
✎
16:49
|
т.е. при десериализации из XML в объект 1С важен порядок реквизитов 1С, иначе пошлет в пешеэротическое
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |