2016-09-15 27 views
1

我希望得到以下網址的XML內容,並將其更改爲JSON的XML:link無法獲得,因爲第一個標記之前,HTML線

不幸的是,有一段HTML之前,所以我無法獲得xml: 「此XML文件似乎沒有任何與其關聯的樣式信息,文檔樹如下所示。」

我得到以下錯誤:

Warning: simplexml_load_string(): Entity: line 1: parser error : Start tag expected, '<' not found in /Users/nicolasleroux/Sites/YouTube-Closed-Captions-master/closed-captions.php on line 56 

這裏是我的代碼using this librairy to convert xml to Json

$xmlNode = simplexml_load_string($baseUrl); 
$arrayData = xmlToArray($xmlNode); 
echo json_encode($arrayData); 

$baseUrl是YouTube字幕的URL。

感謝您的幫助。

回答

1

您需要將XML內容傳遞給simplexml_load_string函數,因爲我看到您傳遞一個url。

嘗試加載內容到一個新的變量,該變量傳遞給函數,這樣

$xmlData = file_get_contents($baseUrl) 

$xmlNode = simplexml_load_string($xmlData); 

或者使用curl

$curl = curl_init(); 

curl_setopt_array($curl, array(
    CURLOPT_URL => "https://www.youtube.com/api/timedtext?key=yttt1&expire=1473964248&caps=asr&sparams=asr_langs%2Ccaps%2Cv%2Cexpire&signature=616905FBCCA3D1416505086247C279F998C4E540.940715461068C48B432B6B1A3AD33628C450CF86&v=WlaoL3A9ros&hl=fr_FR&asr_langs=it%2Cko%2Cfr%2Cen%2Cpt%2Cja%2Cnl%2Ces%2Cde%2Cru&type=track&lang=en&name=&kind=asr&fmt=1", 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, 
    CURLOPT_CUSTOMREQUEST => "GET", 
)); 

$response = curl_exec($curl); 
$err = curl_error($curl); 

curl_close($curl); 

if ($err) { 
    echo "cURL Error #:" . $err; 
} else { 
    $xmlNode = simplexml_load_string($response); 
    //var_dump($xmlNode); 
    $arrayData = xmlToArray($xmlNode); 
    echo json_encode($arrayData); 
} 
+0

謝謝你,不幸的是,file_get_contents()函數沒有按」 t工作,沒有加載的內容我不知道爲什麼... – AlphaNico

+0

您的互聯網連接使用代理? – developer

+0

它適用於我沒有任何問題,確保你通過格式化爲** file_get_contents()**或** CURLOPT_URL **,我用我使用的代碼更新了我的答案 – developer

相關問題