これについてあなたの助けに感謝します。基本的に、ユーザーが都市名を (そのコードで) 選択する PHP Web ページがあり、これがスクリプトに送信され、データベース内の都市が検索され、それに関連付けられた XML ファイルが取得され、現在の天気が含まれます。をクリックして表示します。ユーザーが存在しないコードを選択した場合を除いて、すべて正常に機能します。次に何が起こるかというと、次のメッセージが表示されます。
Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: Entity: line 1: parser error : Start tag expected, '<' not found in ...
これに関する主な問題は、すべての読み込みが停止するため、ユーザーに表示されるだけでなく、HTML を含むページの残りの部分やすべてが読み込まれないことです。
私が望むのは、ファイルの構造が間違っていることが見つからない場合に、「エラー、都市が見つかりません」などのメッセージを単にエコーし、残りのスクリプトをスキップして、残りをロードするという、ある種のチェックを行うことです。ウェブページ、その HTML などの
インターネットでいくつかの解決策を見つけましたが、うまく実装できませんでした。
実際の xml をロードするコードは次のようになります。
public function __construct($query, $units = 'imperial', $lang = 'en', $appid = ''){
$xml = new SimpleXMLElement(OpenWeatherMap::getRawData($query, $units, $lang, $appid, 'xml'));
$this->city = new _City($xml->city['id'],
$xml->city['name'],
$xml->city->coord['lon'],
$xml->city->coord['lat'],
$xml->city->country);
etc.
都市が見つからない場合、プログラムは XML の代わりに次のように取得します。
http://api.openweathermap.org/data/2.5/weather?id=123456
見つかった場合は、次のようになります。
http://api.openweathermap.org/data/2.5/weather?q=ロンドン&モード=xml