2012-01-04 2 views
3

Как бы вытащить XML-файл с внешнего сайта для кодирования в JSON? Я хочу, чтобы проверить, является ли значение в XML-файле истинным или ложным, но я знаю только, как это сделать с JSON и не могу найти ничего о том, как это сделать с XML. Это то, что я делаю с JSON, используя API тянуть JSON:Преобразование XML в JSON с помощью PHP

$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

ответ

1

Вы на правильном пути. После того, как вы загрузили XML с этим:

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

Вы можете получить значение isLive узла путем вызова метода XPATH и передавая ей XPATH запрос:

$result = $xml->xpath("/own3dReply/liveEvent/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

Смежные вопросы