2011-12-08 34 views
0

このURLに関連付けられたXMLファイルを取得するためにCURLを使用しようとしていますが、DOMxPathを使用してxmlファイルを解析しようとしています。CURLでこのURLに関連付けられたXMLファイルを取得する

この時点で出力エラーはありません。何も表示されていないだけですが、いくつかのエラーをキャッチしようとしましたが、わかりませんでした。

<?php 
if (!function_exists('curl_init')){ 
     die('Sorry cURL is not installed!'); 
    } 

function tideTime() { 


$ch = curl_init("http://tidesandcurrents.noaa.gov/noaatidepredictions/NOAATidesFacade.jsp?datatype=XML&Stationid=8721138"); 
$fp = fopen("8721138.xml", "w"); 

curl_setopt($ch, CURLOPT_FILE, $fp); 
curl_setopt($ch, CURLOPT_HEADER, 0); 

curl_exec($ch); 

curl_close($ch); 
fclose($fp); 

$dom = new DOMDocument(); 
@$dom->loadHTML($ch); 
$domx = new DOMXPath($dom); 
$entries = $domx->evaluate("//time"); 

$arr = array(); 
foreach ($entries as $entry) { 

    $tide = $entry->nodeValue; 

} 
echo $tide; 

} 
?> 
+0

あなたは何を得るのかというつかむことができるかもしれ); ' – Cyclonecode

+0

' $ dom-> loadHTML'の前に '@'を削除していくつかのメッセージを得ることができます(そうでなければerrの表示が無効になっていればあらかじめ 'set_error_handler(" var_dump ");また、例外を「キャッチ」することはできません。あなたはなぜファイル/コンテンツではなくカールのハンドルを渡していますか? – mario

+0

'@ $ dom-> loadHTML($ ch);' '$ $ dom-> loadHTML($ fp);'にする必要がありますか? –

答えて

0

curlリソースハンドルをDOMとしてロードしようとしています。カール関数は直接出力するか、文字列に出力します。

$ch = curl_init("http://tidesandcurrents.noaa.gov/noaatidepredictions/NOAATidesFacade.jsp?datatype=XML&Stationid=8721138"); 
$fp = fopen("8721138.xml", "w"); 

curl_setopt($ch, CURLOPT_FILE, $fp); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); 

$data = curl_exec($ch); 
curl_close($ch); 
fclose($fp); 
$dom = new DomDocument(); 
$dom->loadHTML($data); 
// the rest of the code 
+0

私はこれを行うと、私は$データをエコー - 私は取得しようとしているXMLファイルから任意のinfromationを引っ張っていない、それはちょうどページから何かを要求しているように、ページが戻ってエラーをスローし、エラーからのHTML ... –

+0

http://smyrnainlet.com/smyrnainlet/tide.phpは現在どこにいるのですか –

0

あなたがあなたが、xmlファイルに("//time");を持っているあなたはxmlファイルでつかむことが確実で作る、一部利用できないXPathをキャッチしようと思われますか?あなたはxmlに入れますか?

+0

これは取得しようとしているファイルを持つURLです。あなたがそのページを見ればhttp://tidesandcurrents.noaa.gov/noaatidepredictions/NOAATidesFacade.jsp?Stationid=8721138 –

+0

XMLと書かれた右側のボタンがあります - 私はそのボタンからパスを引くしようとしたとなってしまいました本当に大きなURLとそのdidntの仕事のいずれか、おそらくあなたはおそらく彼らはおそらくあなたが恐らくxmlファイルを生成しているとthatsそれはxmlファイルをダウンロードしていないと、そのリンクをクリックするとブラウザで開きません... 。---どのような方法は、この生成されたXMLをキャッチするために使用できますか? –

0

我々はそのページを見れば、それはjavascriptので生成されたXMLと思われる、http://tidesandcurrents.noaa.gov/noaatidepredictions/NOAATidesFacade.jsp?datatype=XML&Stationid=8721138&text=datafiles%2F8721138%2F09122011%2F877%2F&imagename=images/8721138/09122011/877/8721138_2011-12-10.gif&bdate=20111209&timelength=daily&timeZone=2&dataUnits=1&interval=&edate=20111210&StationName=Ponce Inlet, Halifax River&Stationid_=8721138&state=FL&primary=Subordinate&datum=MLLW&timeUnits=2&ReferenceStationName=GOVERNMENT CUT, MIAMI HARBOR ENTRANCE&HeightOffsetLow=*1.00&HeightOffsetHigh=* 1.18&TimeOffsetLow=33&TimeOffsetHigh=5&pageview=dayly&print_download=true&Threshold=&thresholdvalue=

を見ては、あなたが `ますprint_r($エントリーをすれば

関連する問題