![]() |
|
|
#1
|
||||
|
||||
![]() Доброе время суток, господа. Прошу помочь мне с одной проблемой.
Итак, мне потребовалось использовать веб-API в программе, которую я пишу, а писака из меня, признать, так себе - неуч и самоучка. В итоге я смог освоиться с GET-запросами, но вот затык: из полученного XML-файла неизвестной длинны мне нужно выдирать ровно одну строчку в каждом подразделе. Подробнее. Само API: http://api.eve-central.com/api/marke...ystem=30000142 Итак, из каждого подраздела <type> нужно извлекать всего две вещи: его id (параметр) и графу /<type>/<buy>/<percentile>. И я представления не имею, как это сделать, даже после прочтения массы статей, найденных в гугле - каждая попытка что-то сделать заканчивалась провалом. Не могли бы вы мне на конкретном примере показать, как это можно сделать? Желательны указания на необходимые объявления и компоненты, которые нужно ставить. Заранее спасибо. Если не ты, то кто? (с) Терри Пратчетт Не забывайте ставить плюсы и говорить спасибо! |
#2
|
||||
|
||||
![]() IXMLDocument
Можно даже выборки делать из XML. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
||||
|
||||
![]() MADMAN, я его установил, но мою проблему это не решило. Я всё равно не понимаю, как не пропарсить весь XML-файл и не вогнать его в Memo, а брать два конкретных параметра из каждой графы <type>.
UPD: Упс, я сначала усмотрел в сообщении ECXMLParser. Тем не менее, я в этой области и правда ни в зуб ногой. Если не ты, то кто? (с) Терри Пратчетт Не забывайте ставить плюсы и говорить спасибо! |
#4
|
||||
|
||||
![]() для загрузки и парсинга xml очень удобно использовать IXMLHttpRequest.
Пишу программы за еду. __________________ |
#5
|
||||
|
||||
![]() Я вот как загружал.
Код:
Address:='http://api.eve-central.com/api/marketstat?typeid=34&usesystem=30000142'; idhttp.Host:='http://eve-central.com'; stream:=TMemoryStream.Create; stream.Seek(0,soBeginning); stream.Position:=0; idhttp.Get(Address,stream); XMLDocument1.Active:=True; XMLDocument1.LoadFromStream(stream); Если не ты, то кто? (с) Терри Пратчетт Не забывайте ставить плюсы и говорить спасибо! |
#6
|
||||
|
||||
![]() Код:
FXMLHttpRequest: IXMLHttpRequest; XMLDOMDocument: IXMLDOMDocument; uid: String; ... FXMLHttpRequest:=CreateComObject(CLASS_XMLHTTPRequest) as IXMLHttpRequest; FXMLHttpRequest.open('GET', 'http://server/xml', False, '', ''); FXMLHttpRequest.send(''); if FXMLHttpRequest.status<>200 then raise ... XMLDOMDocument:=XMLHttpRequest.responseXML as IXMLDOMDocument; if XMLDOMDocument.parseError.errorCode<>0 then raise ... uid:=XMLDOMDocument.getElementsByTagName('uid').item[0].text; Пишу программы за еду. __________________ |