За последние 24 часа нас посетил 14951 программист и 1675 роботов. Сейчас ищут 1772 программиста ...

String could not be parsed as XML

Тема в разделе "PHP для новичков", создана пользователем Георгий, 24 мар 2010.

  1. Георгий

    Георгий Активный пользователь

    С нами с:
    24 мар 2010
    Сообщения:
    3
    Симпатии:
    0
    $requestAddress = "http://www.aaa.ru";
    $xml_str = file_get_contents($requestAddress,0);
    $xml = new SimplexmlElement($xml_str);

    выдаёт ошибку String could not be parsed as XML
    Как быть?
    Спасибо
     
  2. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    а там xml?
     
  3. Георгий

    Георгий Активный пользователь

    С нами с:
    24 мар 2010
    Сообщения:
    3
    Симпатии:
    0
    там 100-пудовый xml
     
  4. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    а если просто вывести echo $xml_str - там xml есть? или там false, например?
     
  5. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Раньше говорили "блин буду!".
    Эх, молодежь.
     
  6. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    Раньше говорили «Зуб даю!»
    Эх, молодёжь :D
     
  7. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Apple
    да не он просто имел ввиду что, там xml весит 1600 килограмм хз сколько это в килобайтах xD
     
  8. Георгий

    Георгий Активный пользователь

    С нами с:
    24 мар 2010
    Сообщения:
    3
    Симпатии:
    0
    вот там какая хрень
    Полный текст фрагмента
    <?php
    function getWeather() {
    $requestAddress = "http://www.google.com/ig/api?weather=челябинск&hl=ru";
    $xml_str = file_get_contents($requestAddress,0);
    XML $xml = new SimplexmlElement($xml_str);
    $count = 0;
    echo '<div id="weather">';
    foreach($xml->weather as $item) {
    foreach($item->forecast_conditions as $new) {
    echo '<div class="weatherIcon">';
    echo '<img src="http://www.google.com/' .$new->icon['data'] . '"/><br/>';
    echo $new->day_of_week['data'];
    echo '</div>'; } }
    echo '</div>';}
    getWeather();
    ?>

    а по адресу http://www.google.com/ig/api?weather=челябинск&hl=ru

    лежит

    <xml_api_reply version="1"> <weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0"> <forecast_information> <city data="Chelyabinsk, Province of Chelyabinsk"/> <postal_code data="челябинск"/> <latitude_e6 data=""/> <longitude_e6 data=""/> <forecast_date data="2010-02-10"/> <current_date_time data="2010-02-10 08:00:00 +0000"/> <unit_system data="US"/> </forecast_information> <current_conditions> <condition data="Cloudy"/> <temp_f data="-13"/> <temp_c data="-25"/> <humidity data="Humidity: 73%"/> <icon data="/ig/images/weather/cloudy.gif"/> <wind_condition data="Wind: SE at 4 mph"/> </current_conditions> <forecast_conditions> <day_of_week data="Wed"/> <low data="-17"/> <high data="2"/> <icon data="/ig/images/weather/mostly_sunny.gif"/> <condition data="Mostly Sunny"/> </forecast_conditions> <forecast_conditions> <day_of_week data="Thu"/> <low data="-1"/> <high data="12"/> <icon data="/ig/images/weather/cloudy.gif"/> <condition data="Cloudy"/> </forecast_conditions> <forecast_conditions> <day_of_week data="Fri"/> <low data="5"/> <high data="18"/> <icon data="/ig/images/weather/mostly_sunny.gif"/> <condition data="Partly Sunny"/> </forecast_conditions> <forecast_conditions> <day_of_week data="Sat"/> <low data="6"/> <high data="27"/> <icon data="/ig/images/weather/mostly_sunny.gif"/> <condition data="Partly Sunny"/> </forecast_conditions> </weather></xml_api_reply>
     
  9. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    в настоящий момент там лежит
    <?xml version="1.0"?><xml_api_reply version="1"><weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0" ><problem_cause data="Информация временно недоступна."/></weather></xml_api_reply>

    Но вопрос для начала в том, вытягивает ли file_get_contents($requestAddress,0); этот xml или нет.
     
  10. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    вытягивает, скорее всего

    Георгий
    1. у SimplexmlElement конструктор принимает в качестве первого параметра и url
    PHP:
    1. <?php $xml = new SimplexmlElement($requestAddress, null, true); ?>
    2. Кодировки

    либо приводить к utf-8, чтоб SimplexmlElement мог отработать
    PHP:
    1. <?php $xml_str = mb_convert_encoding($xml_str, 'UTF-8');?>
    либо просто указать кодировку ответа в запросе