2012-01-04 28 views
3

XMLファイルをJSONでエンコードするために外部サイトから取得するにはどうすればよいですか?私は、XMLファイルの値がtrueかfalseであるかどうかを確認できるようにしたいと思いますが、JSONを使用してXMLファイルを作成する方法しかわかりませんし、XMLでこれを行う方法については何も見つかりません。これは私がJSON APIのプルを使用してJSONでやっているものです: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); 
} 

唯一の問題は、私はからプルしたい他のサイトには、JSONのオプションを持つ対そのAPIのXML文書を使用することです。これは私が持っているものですが、私は幾分近いかもしれませんが、私はそれが正しいとは思わない:

$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

答えて

1

あなたは正しい方向にあります。あなたはこれでXMLをロードした後:そう、

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

このメソッドは、配列を返す:

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

あなたは、XPathメソッドを呼び出して、それをXPathクエリを渡すことによってisLiveノードの値を取得することができますあなたは結果を繰り返すか、それをプリントアウトすることができ、次のいずれか

print($result[0]); 

は、先に進む前に、$xml$resultの両方をチェックすることを忘れないでください。それらと一緒に。私は外部のウェブサイトから取得したデータに頼って悪い経験をしています。

+0

ありがとうございます。これは完全に機能しました。以下は動作したコードです: '// Bomber $ stringData =" StartaleBomber
"; $ xml = simplexml_load_file( "http://api.own3d.tv/liveCheck.php?live_id=173952"); $ result = $ xml-> xpath( "/ own3dReply/liveEvent/isLive"); if($ result [0] == 'true'){ fwrite($ fh、$ stringData); } ' – user1096935

関連する問題