2013-09-13 3 views
4

Я пытаюсь получить данные xml с этого URL-адреса.php get xml from remote url not a file

http://cloud.tfl.gov.uk/TrackerNet/PredictionSummary/V Я могу ввести URL-адрес непосредственно в свою панель браузера и получить требуемый результат.

Я пытаюсь использовать приведенный ниже код, чтобы извлечь xml и вернуть его в мой браузер, но теперь в правильном домене, поэтому к нему можно получить доступ через javascript.

<!DOCTYPE html> 
<html> 
<head> 
    <link type='text/css' rel='stylesheet' href='style.css'/> 
    <title>Get Started!</title> 
</head> 
<body> 
    <p><?php 
    /*echo file_get_contents("http://cloud.tfl.gov.uk/TrackerNet/PredictionSummary/V");*/ 
    echo simplexml_load_file("http://cloud.tfl.gov.uk/TrackerNet/PredictionSummary/V"); 
    ?></p> 
</body> 
</html> 

Я попробовал оба file_get_contents и simplexml_load_file но ни разработали

Я предположил, что проблема была с тем, что не является файл в конце URL. НИ ОДИН ИЗ НИЖЕ РАБОЧЕЕ ПОКА

+0

удалить = вы не назначаете – x29a

+0

Ваш синтаксис является неправильным. Я предлагаю вам прочитать http://php.net/manual/en/function.echo.php –

+0

Ах, моя ошибка, оставшаяся от других вещей, которые я пробовал. Я исправил синтаксис, и он все еще не работает. –

ответ

4

simplexml_load_file() возвращает объект, а не строку XML. Даже тогда, с вашим текущим кодом, XML будет потерян в HTML. Следующее будет эквивалентно непосредственному посещению URL-адреса:

header('Content-type: application/xml'); 
echo file_get_contents('http://cloud.tfl.gov.uk/TrackerNet/PredictionSummary/V'); 

Чтобы убедиться, что вы можете проанализировать XML, попробуйте это. Он загружает XML и печатает имя корневого узла - в этом случае, ROOT:

$xml = simplexml_load_file($url); //retrieve URL and parse XML content 
echo $xml->getName(); // output name of root element 

Поможет ли это?

+0

Я предположил, что возвращение xml, даже потерянного в html, будет видно даже в том случае, если это будет беспорядочная строка. Я просто хочу получить подтверждение того, что xml правильно загружен в мой php-скрипт, и самый простой способ сделать это - увидеть его –

+0

Все еще не работает –

+0

Итак, мой первый пример кода в собственном PHP-файле, t показывать что-нибудь в конце? –

2

Смотреть документацию для

http://php.net/manual/en/simplexml_load_file

для примера для печати выходного

<?php 
    $xml = simplexml_load_file('http://cloud.tfl.gov.uk/TrackerNet/PredictionSummary/V'); 
    print_r($xml); 
?> 

или проверить руководство

http://php.net/manual/en/function.echo.php

для вывода строки возвращение file_get_contents()

<?php 
    $xml = file_get_contents("http://cloud.tfl.gov.uk/TrackerNet/PredictionSummary/V"); 
    echo $xml; 
?> 
+0

Они все еще не работают –

+0

Можете ли вы уточнить, что не работает? Посмотрите с помощью wirehark (или ваших браузеров dev tools), данные которых попадают в сеть. Возможно, они ищут конкретные запросы браузера на этой странице? – x29a

+0

Я просто закончил с пустой страницы. Испытали в IE и хром. В хром, когда я нажимаю F12 (это инструменты разработчика). и когда я проверяю элемент, я вижу, что элемент абзаца пуст.Когда я проверяю консоль, сообщение об ошибке не произошло. –

0

Попробуйте это ... Работало me..simple и легко ..

<?php 
$url=file_get_contents('http://www.w3schools.com/php/note.xml'); 
$xml = new SimpleXMLElement($url); 

echo $xml->to; 

?>