|   |   | 
| 
 | Чтение 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); | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |