2012-01-04 101 views
3

如何從外部網站中將XML文件從JSON中進行編碼?我希望能夠檢查XML文件中的值是true還是false,但我只知道如何使用JSON執行此操作,並且無法找到有關如何使用XML執行此操作的任何信息。這就是我使用JSON一個JSON API拉做:使用PHP將XML轉換爲JSON

$stringData = "<a href=\"http://www.twitch.tv/coldrewbie\"</a>coL.drewbie<br>\n"; 
$json_file = file_get_contents("http://api.justin.tv/api/stream/list.json?channel=coldrewbie"); 
$json_array = json_decode($json_file, true); 

if ($json_array[0]['name'] == 'live_user_coldrewbie') { 
    fwrite($fh, $stringData); 
} 

唯一的問題是,其他站點我想從拉使用XML文檔的API和具有JSON選項。這是我有,但我不認爲它是正確的,雖然我可能有點接近:

$xml = simplexml_load_file("http://api.own3d.tv/liveCheck.php?live_id=173952"); 
$json_file = json_encode($xml); 
$json_array = json_decode($json, true); 

if ($json_array[0]['isLive'] == 'true'){ 
    echo "yup"; 
} 

任何幫助將是可怕的!

+0

我可以繞過整個json的東西,並檢查一個元素是否包含特定的內容,並驗證它是真的還是假的?然後創建一個if語句來回應我想要說的話嗎? – user1096935 2012-01-04 17:49:59

回答

1

您正處於正確的軌道上。一旦您已加載的XML與此:

$xml = simplexml_load_file("http://api.own3d.tv/liveCheck.php?live_id=173952"); 

您可以通過調用XPath的方法,並把它的XPath查詢得到isLive節點的值:

$result = $xml->xpath("/own3dReply/liveEvent/isLive"); 

這個方法返回一個數組,所以你可以重複的結果,或只是打印出來:

print($result[0]); 

別忘了纔去任何進一步的檢查都$xml$result跟他們。依靠從外部網站獲取的數據,我遇到了不好的經歷。

+0

非常感謝。這工作完美。下面是工作的代碼: '//轟炸機 $ stringData =「StartaleBomber
」; $ xml = simplexml_load_file(「http://api.own3d.tv/liveCheck.php?live_id=173952」); $ result = $ xml-> xpath(「/ own3dReply/liveEvent/isLive」);如果($結果[0] =='真'){ fwrite($ fh,$ stringData); }' – user1096935 2012-01-04 18:43:13