;+ ; FUNCTION: GET_SOURCE_URL_LIST ; url_out=get_source_url_list(url_in, xmldir, xmlfile) ; ; PURPOSE: ; Gets URLs of data files from the metadata database. ; ; KEYWORDS: ; url_in = Query in the OpenSearch format ; xmldir = Directory where XML file will be downloaded to. ; xmlfile = Returned XML file for search result ; url_out = URLs of data files returned by the Metadata databese ; ; EXAMPLE: ; url_in='http://search.iugonet.org/iugonet/open-search/request?'+$ ; 'query=nipr_1sec_fmag_syo_20100101_v02.cdf' ; url_out=get_source_url_list(url_in, './', 'tmp.xml') ; ; Written by Y.-M. Tanaka, Sep. 15, 2011 (ytanaka at nipr.ac.jp) ;- FUNCTION get_source_url_list, url_in, xmldir, xmlfile ;----- keyword check -----; IF ~KEYWORD_SET(xmldir) THEN xmldir=root_data_dir() IF ~KEYWORD_SET(xmlfile) THEN xmlfile='tmp.xml' url_out='' ;----- download xmlfile -----; file_http_copy, xmlfile, serverdir=url_in, localdir=xmldir ;----- parse XML and get URL -----; oDoc = OBJ_NEW('IDLffXMLDOMDocument', filename=xmldir+xmlfile, $ schema_checking=0) ; Create IDLffXMLLOM objects ; oPlugin = oDoc->GetFirstChild() ; oNodeList = oPlugin->GetElementsByTagname('dc:identifier') oNodeList = oDoc->GetElementsByTagname('dc:identifier') n = oNodeList->GetLength() IF n GT 0 THEN BEGIN url_out=STRARR(n) FOR i=0, n-1 DO BEGIN oName = oNodeList->Item(i) IF OBJ_VALID(oName) THEN BEGIN oNameText = oName->GetFirstChild() url_out(i)=oNameText->GetNodeValue() ENDIF ENDFOR ENDIF OBJ_DESTROY, oDoc RETURN, url_out END