|
Чтение XML файла. | ☑ | ||
---|---|---|---|---|
0
antihacker
29.03.16
✎
13:58
|
Всем привет !
Вот файл <?xml version="1.0" encoding="utf-8"?> <EVENTSLIST DCSNAME="kyzmo0077d"> <EVENT> <dEvent_Date>03.03.2016 12:03:09</dEvent_Date> <iUserNum>1864</iUserNum> <tDescReader>1\Панель 1\Турникет1\Выход</tDescReader> <dEvent_Date>03.03.2016 12:03:09</dEvent_Date> <iReader>2</iReader> </EVENT> <EVENT> <dEvent_Date>03.03.2016 12:03:48</dEvent_Date> <iUserNum>2260</iUserNum> <tDescReader>1\Панель 1\Турникет1\Выход</tDescReader> <dEvent_Date>03.03.2016 12:03:48</dEvent_Date> <iReader>2</iReader> </EVENT> <EVENT> <dEvent_Date>03.03.2016 12:03:56</dEvent_Date> <iUserNum>1502</iUserNum> <tDescReader>1\Панель 1\Турникет1\Выход</tDescReader> <dEvent_Date>03.03.2016 12:03:56</dEvent_Date> <iReader>2</iReader> </EVENT> <EVENT> Читаю так ПОКА ЧтениеXMl.Прочитать() ЦИКЛ //***********Общие реквизиты*************************** Если ЧтениеXMl.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда Если ЧтениеXMl.Имя="EVENTSLIST" Тогда ИмяССД = СокрЛП(ЧтениеXMl.ПолучитьАтрибут("DCSNAME")); сообщить(ИмяССД); //КОнецЕсли; КонецЕсли; Если ЧтениеXMl.Имя="EVENT" Тогда //Если ЧтениеXMl.Имя="EVENT" Тогда сообщить(СокрЛП(ЧтениеXMl.ПолучитьАтрибут("iUserNum"))); КонецЕсли; КонецЕсли; КОНЕЦЦИКЛА; Значение DCSNAME выдает, а значение iUserNum нет. Что не так ? |
|||
1
lxs
29.03.16
✎
14:00
|
Потому что iUserNum не атрибут
|
|||
2
antihacker
29.03.16
✎
14:02
|
А как его читать ?
|
|||
3
mehfk
29.03.16
✎
14:04
|
Как элемент.
|
|||
4
lxs
29.03.16
✎
14:05
|
(2) Если ЧтениеXMl.Имя=
|
|||
5
lxs
29.03.16
✎
14:06
|
Вернее нет, там надо текст получить
|
|||
6
Fragster
гуру
29.03.16
✎
14:09
|
я бы сделал схему и двумя строками запихал в объект XDTO. кстати, дата в XML из (0) не по стандарту.
|
|||
7
Fragster
гуру
29.03.16
✎
14:10
|
||||
8
antihacker
29.03.16
✎
14:15
|
lxs получить текст пробовал
ПОКА ЧтениеXMl.Прочитать() ЦИКЛ //***********Общие реквизиты*************************** Если ЧтениеXMl.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда Если ЧтениеXMl.Имя="EVENTSLIST" Тогда ИмяССД = СокрЛП(ЧтениеXMl.ПолучитьАтрибут("DCSNAME")); сообщить(ИмяССД); //КОнецЕсли; КонецЕсли; ИначеЕсли ЧтениеXMl.ТипУзла=ТипУзлаXMl.Текст Тогда Если ЧтениеXMl.Имя="EVENT\iUserNum" Тогда //Если ЧтениеXMl.Имя="EVENT" Тогда сообщить(СокрЛП(ЧтениеXMl.Значение)); КонецЕсли; КонецЕсли; КОНЕЦЦИКЛА; Ведет себя как будто не бегает по циклу или ИначеЕсли ЧтениеXMl.ТипУзла=ТипУзлаXMl.Текст Тогда Не выполлняеться |
|||
9
lxs
29.03.16
✎
14:16
|
(6) Если ЧтениеXMl.Имя="iUserNum" Тогда
|
|||
10
antihacker
29.03.16
✎
14:20
|
Не работает ска
|
|||
11
antihacker
29.03.16
✎
14:36
|
Ауууууу
|
|||
12
antihacker
29.03.16
✎
14:50
|
Вот так читаю
ПОКА ЧтениеXMl.Прочитать() ЦИКЛ //***********Общие реквизиты*************************** Если ЧтениеXMl.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда СтекУзлов.Добавить(ЧтениеXMl.Имя); //ТекущийПуть = МассивСтрок (СтекУзлов); Если ЧтениеXMl.Имя="EVENTSLIST" Тогда ИмяССД = СокрЛП(ЧтениеXMl.ПолучитьАтрибут("DCSNAME")); сообщить(ИмяССД); //КОнецЕсли; КонецЕсли; Если ЧтениеXMl.Имя="EVENT" Тогда сообщить(ЧтениеXMl.ПолучитьАтрибут("dEvent_Date")); сообщить(ЧтениеXMl.ПолучитьАтрибут("iUserNum")); сообщить(ЧтениеXMl.ПолучитьАтрибут("tDescReader")); сообщить(ЧтениеXMl.ПолучитьАтрибут("iReader")); КонецЕсли; КонецЕсли; КОНЕЦЦИКЛА; А файл вот так <?xml version="1.0" encoding="utf-8"?> <EVENTSLIST DCSNAME="kyzmo0077d"> <EVENT dEvent_Date="03.03.2016 12:03:09" iUserNum="1864" tDescReader="1\Панель 1\Турникет1\Выход" iReader="2" /> <EVENT dEvent_Date="03.03.2016 12:03:48" iUserNum="2260" tDescReader="1\Панель 1\Турникет1\Выход" iReader="2" /> <EVENT dEvent_Date="03.03.2016 12:03:56" iUserNum="1502" tDescReader="1\Панель 1\Турникет1\Выход" iReader="2" /> <EVENT dEvent_Date="03.03.2016 12:04:21" iUserNum="2283" tDescReader="1\Панель 2\Турникет2 \Выход" iReader="4" /> <EVENT dEvent_Date="03.03.2016 12:04:23" iUserNum="775" tDescReader="1\Панель 1\Турникет 1\Вход" iReader="1" /> <EVENT dEvent_Date="03.03.2016 12:04:35" iUserNum="2282" tDescReader="1\Панель 2\Турникет2 \Выход" iReader="4" /> |
|||
13
Ёпрст
29.03.16
✎
14:53
|
(12) а откуда этот файлик взялся, если в (0) - совсем другой ?
|
|||
14
antihacker
29.03.16
✎
15:03
|
Я сам же его и создаю ))
|
|||
15
igork1966
29.03.16
✎
15:05
|
мда, миста как сервер отладки со встроенным СП
|
|||
16
lxs
29.03.16
✎
15:28
|
(14) Если у тебя структура каждый раз меняется, то под каждую новую надо переписывать твой парсер.
|
|||
17
antihacker
30.03.16
✎
05:58
|
Почему каждый раз ? Нету такой необходимости.
|
|||
18
mehfk
30.03.16
✎
08:19
|
(0) Делай так:
СтрXML = "<?xml version=""1.0"" encoding=""utf-8""?> |<EVENTSLIST DCSNAME=""kyzmo0077d""> | <EVENT> | <dEvent_Date>03.03.2016 12:03:09</dEvent_Date> | <iUserNum>1864</iUserNum> | <tDescReader>1\Панель 1\Турникет1\Выход</tDescReader> | <dEvent_Date>03.03.2016 12:03:09</dEvent_Date> | <iReader>2</iReader> | </EVENT> | <EVENT> | <dEvent_Date>03.03.2016 12:03:48</dEvent_Date> | <iUserNum>2260</iUserNum> | <tDescReader>1\Панель 1\Турникет1\Выход</tDescReader> | <dEvent_Date>03.03.2016 12:03:48</dEvent_Date> | <iReader>2</iReader> | </EVENT> | <EVENT> | <dEvent_Date>03.03.2016 12:03:56</dEvent_Date> | <iUserNum>1502</iUserNum> | <tDescReader>1\Панель 1\Турникет1\Выход</tDescReader> | <dEvent_Date>03.03.2016 12:03:56</dEvent_Date> | <iReader>2</iReader> | </EVENT> |</EVENTSLIST>"; ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.УстановитьСтроку(СтрXML); EventList = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |