|
Как парсить файл xml? | ☑ | ||
---|---|---|---|---|
0
bebibo
26.11.19
✎
13:58
|
Здравствуйте. Задача такая: есть xml файл. При нажатии на кнопку, нужно этот хмл файл распарсить по реквизитам в обработке встроенной. То есть: загрузила хмл файл - парсится - и все нужные значения вставил в реквизиты обработки этой.
То есть например чтобы эту обработку по 10 раз не заполнять ПОЧТИ одними и те же ми данными, я беру файл хмл и парсю и в обработке заполняются реквизиты из этого файла хмл. Вопрос, как это сделать? В интернете не понятно, там только чтение и запись. А мне надо чтобы из хмл в реквизиты обработки вставали данные. |
|||
1
mikecool
26.11.19
✎
13:59
|
тебе читать про чтение
|
|||
2
bebibo
26.11.19
✎
14:01
|
(1) читать то я понимаю как, но как запихнуть в нужные реквизиты?
|
|||
3
Папа Гапа
26.11.19
✎
14:02
|
(2) Атрибуты обработки или на форме?
|
|||
4
bebibo
26.11.19
✎
14:02
|
(3) На форме
|
|||
5
Папа Гапа
26.11.19
✎
14:06
|
Тогда желательно знать какая у вас версия вижуалбейсика
|
|||
6
8 bit
26.11.19
✎
14:06
|
Какая боль чувствуется в этом словесном потоке. Автор мечется между увольнением и лишением премии.
|
|||
7
Папа Гапа
26.11.19
✎
14:08
|
(6) Не флудите. Уважайте собеседника. Когда-нибудь он станет вашим руководителем.
|
|||
8
План счетов
26.11.19
✎
14:08
|
Мощная вещь:
https://ru.wikipedia.org/wiki/XSLT |
|||
9
Александр Б
26.11.19
✎
14:11
|
(2) Присвоением.
|
|||
10
bebibo
26.11.19
✎
14:13
|
(5) А зачем вижуалбейсик? не понимаю немного)
|
|||
11
Папа Гапа
26.11.19
✎
14:15
|
(10) Так вы на кнопочку прямо на клавиатуре хотите нажимать?
|
|||
12
bebibo
26.11.19
✎
14:16
|
(11) нет, на форме обработки, в поле выбора выбираю ХML файл ниже на форме кнопка, нажимая по ней заполняются ниже реквизиты этой обработки из файла XML
|
|||
13
Папа Гапа
26.11.19
✎
14:17
|
(9) За присвоение могут посадить. Это ключевой признак хищения.
|
|||
14
Fragster
гуру
26.11.19
✎
14:19
|
а откуда этот файл берется? почему именно XML?
|
|||
15
SprayTM
26.11.19
✎
14:20
|
А чем чтение не угодило? Читаете атрибуты, присваиваете их к переменным, заносите в значения реквизитов
|
|||
16
_Дайвер_
26.11.19
✎
14:23
|
(12) ПрочитатьXML(<ЧтениеXML>, <ТипЗначения>)
|
|||
17
_Дайвер_
26.11.19
✎
14:25
|
(16) +
ЧитаемДату = Ложь; Пока ЧтениеXML.Прочитать() Цикл Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда Если ЧтениеXML.ЛокальноеИмя = "Дата" Тогда ЧитаемДату = Истина; КонецЕсли; ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда Если ЧитаемДату Тогда Дата = XMLЗначение(Тип("Дата"), ЧтениеXML.Значение); КонецЕсли КонецЕсли КонецЕсли |
|||
18
Fragster
гуру
26.11.19
✎
14:38
|
(17) это отвратительно
|
|||
19
hhhh
26.11.19
✎
14:55
|
(17) ДокументDOM пробуйте. Там попроще многоуровневые элементы разбирать.
|
|||
20
RomanYS
26.11.19
✎
14:58
|
(19) может ОбъектXDTO?
Ч = Новый ЧтениеXML(); Ч.ОткрытьФайл(ИмяФайла); Ф = Новый ФабрикаXDTO(); ОбъектXDTO = Ф.ПрочитатьXML(Ч); |
|||
21
8 bit
26.11.19
✎
15:15
|
(7) сомневаюсь.
Вообще ТС-у я бы порекомендовал ознакомиться со структурой исходного файла, т.е. с XSD-схемой. Зная схему можно проверить на корректность синтаксиса XML-файла, его структуру, модель содержания и типы данных. При попытке анализа непонятно чего нельзя это непонятно что присвоить чему-то. |
|||
22
ZDenis
26.11.19
✎
15:19
|
(20) Фабрику можно даже не создавать
ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.ОткрытьФайл(ИмяФайла); ПисанинаXML = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML); |
|||
23
Garykom
гуру
26.11.19
✎
15:29
|
(18) SAX вполне имеет право на жизнь, не только же DOMить.
|
|||
24
Garykom
гуру
26.11.19
✎
15:31
|
(22) Если XML файл имеет размер 1Гб, а винда и 1С x86 как думаем этот код сумеет выполниться и не рухнуть с нехваткой памяти?
|
|||
25
Fragster
гуру
26.11.19
✎
15:33
|
(24)да
|
|||
26
hhhh
26.11.19
✎
15:35
|
(22) это должны тогда совпадать имена полей и реквизитов в файле и в фабрике. А у девушки здесь вероятность совпадения имен 0 целых хрен десятых.
|
|||
27
Дмитрий
26.11.19
✎
15:35
|
А почему пол мужской?
|
|||
28
Garykom
гуру
26.11.19
✎
15:36
|
(25) Неа, если по РИБ прилетает обновление типовой конфы которая размером под 1 гиг то оно нихрена не грузится на x86 винде.
На 64 бит винде и 32 бит 1C как повезет. |
|||
29
Fragster
гуру
26.11.19
✎
15:41
|
(28) не путай обновление типовой конфы (которое и без XML нифига не выполняется на x86 для измененной ERP, например) и простые данные
|
|||
30
Fragster
гуру
26.11.19
✎
15:41
|
1 гиг XML с легкостью прочитается через фабрику XDTO
|
|||
31
Garykom
гуру
26.11.19
✎
15:48
|
(30) ОК, x86 операционка и 2, 3, 4 и т.д. гиг XML файлик.
Кроме как SAX никак не выйдет, для DOM парсера банально памяти не хватит. |
|||
32
mistеr
26.11.19
✎
17:17
|
(2) Ознакомиться с примерами ЧтениеXML не пробовал?
|
|||
33
Сияющий в темноте
26.11.19
✎
18:29
|
и 64 бит,чтобы память всю убить
ведь в нее же мы суем никому не нужный DOM. и поэтому для вас был придумах метод SAX. |
|||
34
Garykom
гуру
26.11.19
✎
18:41
|
(33) Не-не DOM штука полезная когда надо не простое линейное чтение а по разному засунуть XML в некую структуру и там крутить как угодно пробегая или выборки делая.
Или даже изменяя XML а потом назад записать в файлик. |
|||
35
Fragster
гуру
26.11.19
✎
22:53
|
на самом деле никто не мешает комбинировать - методами чтения спуститься на уровень, в котором лежит миллион объектов и дальше читать их по одному через фабрику. вроде как раз так и работает типовая выгрузказагрузкаXML. когда в XML лежат именно что миллионы объектов - оно полезно., и работает быстрее. Но у автора - сохраненные реквизиты. Может ему даже и XML не нужен, а хватит типового сохранения реквизитов формы пользюка. на вопрос, откуда этот XML берется, он так и не ответил
|
|||
36
Папа Гапа
27.11.19
✎
06:21
|
Вы чего так тупите - тут про форму вопрос. Как в реквизиты загрузить. Неужели никто не знает?
|
|||
37
Сияющий в темноте
27.11.19
✎
08:48
|
прочитали реквизиты с именами в структуру,а потом ЗаполнитьЗначенияСвойств и кошки сыты и мышки целы.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |