-1

curl を使用して XML ファイルをダウンロードし、ローカルに保存しました。このファイルが有効な XML であることを確認するにはどうすればよいですか。donloadedd の後、このファイルから mysql 情報を保存します。

    $url = '<URL to XML>';
    $local_path = "myxml.xml";
    $file_handle = fopen($local_path, "w");

    ob_start();
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FILE, $file_handle);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_TIMEOUT, 5); // times out after 4s
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);
    $result = curl_exec($ch);
    curl_close($ch);
    ob_end_clean();
    fclose($file_handle);

私はこれを試しましたが、うまくいきませんでした。

if (filesize('myxml.xml')>0) {

    $str_xml = file_get_contents('myxml.xml');
    if(simplexml_load_string($str_xml)){
        echo 'XML';
    }else{
        echo 'NOT XML';
    }

コードはこれを間違って返しました

警告: simplexml_load_string() [function.simplexml-load-string]: エンティティ: 1 行目: パーサー エラー: 開始タグが必要です。'<' が見つかりません

どこが間違っていますか?

前もって感謝します !

4

1 に答える 1

0

間違っているのは XML の解析ではありません。

CURL の取得で誤った形式の XML を取得しています。のエコーを実行して、何が問題なの$str_xmlかを確認してください。

于 2012-09-10T08:27:48.777 に答える