Автор Тема: [RegExp] Парсинг XML  (Прочитано 1477 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Giltor48 [?]

  • Новичок
  • *
  • Сообщений: 2
  • Репутация: 0
    • Награды
[RegExp] Парсинг XML
« Создано: Декабрь 05, 2016, 16:45:39 »
Добрый день.

Перерыл все темы по XML на форуме, не нашел ответа для себя.
Тело данной XML, сразу скажу, что строк вида <row ... /> может быть куда больше 

<eveapi version="2">
<currentTime>2016-12-05 06:51:55</currentTime>
<result>
<rowset name="members" key="characterID" columns="characterID,name,startDateTime,baseID,base,title,logonDateTime,logoffDateTime,locationID,location,shipTypeID,shipType,roles,grantableRoles">
<row characterID="90033326" name="Ekcio" startDateTime="2015-12-21 15:43:00" baseID="0" base="" title="" logonDateTime="2016-01-12 15:53:52" logoffDateTime="2016-01-12 15:56:03" locationID="61000474" location="2H-TSE II - Space Mining Outpost" shipTypeID="11182" shipType="Cheetah" roles="1017252765660878336" grantableRoles="0"/>
<row characterID="90038231" name="Testicals" startDateTime="2013-10-15 08:28:00" baseID="0" base="" title="Albert Salichov " logonDateTime="2016-11-22 20:04:35" logoffDateTime="2016-11-22 20:30:11" locationID="61000775" location="IOO-7O VIII - shtrafy za mobil depo u stanki " shipTypeID="29984" shipType="Tengu" roles="1016689815170582016" grantableRoles="0"/>
<row characterID="90051651" name="ToN2kk" startDateTime="2016-10-29 22:11:00" baseID="0" base="" title="" logonDateTime="2016-12-03 06:11:33" logoffDateTime="2016-12-03 07:49:02" locationID="61000474" location="2H-TSE II - Space Mining Outpost" shipTypeID="29984" shipType="Tengu" roles="0" grantableRoles="0"/>
<row characterID="90057412" name="Xaaw" startDateTime="2014-04-03 11:22:00" baseID="0" base="" title="" logonDateTime="2016-12-02 14:56:21" logoffDateTime="2016-12-02 19:50:51" locationID="61000474" location="2H-TSE II - Space Mining Outpost" shipTypeID="645" shipType="Dominix" roles="0" grantableRoles="0"/>
<row characterID="90066637" name="SirveLES" startDateTime="2014-11-04 20:09:00" baseID="0" base="" title="" logonDateTime="2016-04-13 03:30:48" logoffDateTime="2016-04-13 03:32:50" locationID="61000474" location="2H-TSE II - Space Mining Outpost" shipTypeID="608" shipType="Atron" roles="1016689815170582016" grantableRoles="0"/>
<row characterID="90074099" name="Urnangu" startDateTime="2015-12-21 23:59:00" baseID="0" base="" title="Alt Sham" logonDateTime="2016-07-24 15:44:02" logoffDateTime="2016-07-24 15:53:39" locationID="60003076" location="Airaken VIII - Expert Housing Production Plant" shipTypeID="11196" shipType="Claw" roles="1016689815170582016" grantableRoles="0"/>
<row characterID="90090846" name="Dancing Joker" startDateTime="2014-03-20 02:15:00" baseID="0" base="" title="" logonDateTime="2016-02-18 16:26:36" logoffDateTime="2016-02-18 16:41:50" locationID="60003760" location="Jita IV - Moon 4 - Caldari Navy Assembly Plant" shipTypeID="587" shipType="Rifter" roles="0" grantableRoles="0"/>
<row characterID="90121495" name="Shamsilisin" startDateTime="2015-12-07 19:36:00" baseID="0" base="" title="" logonDateTime="2016-07-24 15:06:33" logoffDateTime="2016-07-24 15:20:01" locationID="30000225" location="H-5GUI" shipTypeID="11202" shipType="Ares" roles="1016689815170582016" grantableRoles="0"/>
</rowset>
</result>
<cachedUntil>2016-12-05 12:48:55</cachedUntil>
</eveapi>

Необходимо получать данные из name="..."  logonDateTime="..."  logoffDateTime="..."
Получить их с одной строки получилось следующим выражением:

Код: AutoIt [Выделить]
$str = StringRegExp($inet,'.*name="(.*?)" .*logonDateTime="(.*?)" .*logoffDateTime="(.*?)"')


А как заставить скрипт читать все строки данной xml?
Заранее спасибо

Русское сообщество AutoIt

[RegExp] Парсинг XML
« Отправлен: Декабрь 05, 2016, 16:45:39 »

Оффлайн sngr [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 838
  • Репутация: 347
    • Награды
  • Версия AutoIt: 3.3.8.1
Re: [RegExp] Парсинг XML
« Ответ #1, Отправлен: Декабрь 05, 2016, 16:54:25 »
Код: AutoIt [Выделить]
#include 'array.au3'
$file=ClipGet()
$str=StringRegExp($file,'name="([^"<>]+)[^<>]+logonDateTime="([^"<>]+)[^<>]+logoffDateTime="([^"<>]+)',3)
_ArrayDisplay($str)
 


Оффлайн Giltor48 [?]

  • Новичок
  • *
  • Сообщений: 2

  • Автор темы
  • Репутация: 0
    • Награды
Re: [RegExp] Парсинг XML
« Ответ #2, Отправлен: Декабрь 05, 2016, 22:07:06 »
Чуток не додумал, спасибо большое за помощь

Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3861
  • Репутация: 954
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [RegExp] Парсинг XML
« Ответ #3, Отправлен: Декабрь 06, 2016, 20:25:14 »
Giltor48  [?]
Цитировать
Чуток не додумал
Да нет, не чуток.
RegExp тут ни при чём. Всё уже придумано до нас.
(нажмите для показа/скрытия)

Скорблю и помню.




Русское сообщество AutoIt

Re: [RegExp] Парсинг XML
« Ответ #3 Отправлен: Декабрь 06, 2016, 20:25:14 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
22 Ответов
8451 Просмотров
Последний ответ Август 09, 2011, 14:36:40
от HelpMe
3 Ответов
2776 Просмотров
Последний ответ Февраль 01, 2012, 11:48:47
от zoxer1
14 Ответов
5623 Просмотров
Последний ответ Июль 03, 2012, 00:48:36
от Garrett
4 Ответов
4522 Просмотров
Последний ответ Июль 09, 2012, 10:37:38
от blazzed
3 Ответов
2488 Просмотров
Последний ответ Октябрь 02, 2012, 23:20:07
от real_sm
4 Ответов
2875 Просмотров
Последний ответ Март 22, 2013, 15:46:28
от panda_911
20 Ответов
6388 Просмотров
Последний ответ Апрель 08, 2013, 18:17:49
от IgRo
1 Ответов
1969 Просмотров
Последний ответ Август 12, 2013, 11:27:11
от XpycT
2 Ответов
3407 Просмотров
Последний ответ Апрель 25, 2016, 14:30:32
от F9
4 Ответов
5461 Просмотров
Последний ответ Август 24, 2016, 13:27:30
от iltmpz