次の PHP コードを使用して、NOAA の潮汐レポート ステーション API から XML データを読み取ります。
$rawxml = file_get_contents(
"http://opendap.co-ops.nos.noaa.gov/axis/webservices/activestations/"
."response.jsp?v=2&format=xml&Submit=Submit"
);
$rawxml = utf8_encode($rawxml);
$ob = simplexml_load_string($rawxml);
var_dump($ob);
残念ながら、これを表示することになります:
object(SimpleXMLElement)#246 (0) { }
XML は完全に整形式のように見えますが、なぜこれが解析されないのでしょうか? 別の質問 ( Simplexml_load_string() fail to parse error ) を見ると、ヘッダーに問題がある可能性があることがわかりました。http 呼び出しは実際に「ISO-8859-1」の文字セット値を返します。しかし、呼び出しを追加してutf8_encode()
もうまくいかないようです。
特に紛らわしいのは、simplexml_load_string()
これが実際には失敗しないことです。何も入っていないだけで、陽気な XML 配列が返されます。