0

CURLを使用してこのURLに関連付けられたXMLファイルを取得しようとしています。次に、DOMxPathを使用して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;

}
?>
4

3 に答える 3

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=

あなたはそれをつかむことができるかもしれません

于 2011-12-09T04:34:50.860 に答える
0

使用できない xpath をキャッチしようとしているようです("//time");。xml ファイルに含まれていることを確認してください。取得したものが xml ファイルであることを確認してください。それともxmlに入れるだけですか?

于 2011-12-08T15:15:39.643 に答える
0

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

$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
于 2011-12-08T15:18:38.857 に答える