Парсинг xml со значением id

parks

Постоялец
Регистрация
18 Сен 2008
Сообщения
439
Реакции
100
Здравствуйте !
С парсингом столкнулся впервые , второй день муюсь как вывести содержание в теге по id. Перековырял кучу инфы ,но ничего так и не добился, либо пустая страница, либо ошибки.
Вкратце:
Есть xml с данными кинотеатров Для просмотра ссылки Войди или Зарегистрируйся
Нжно спрасить и вывести:
Хотябы по одному кинотеатру, к примеру (cinema_id="223" )

Цены, время, фильмы
<show id="162253" film_id="5710" cinema_id="223" hall_id="419">
выдергнуть film_id=
и затем както сам фильм ,высмысле инфу
<film id="5710">
Зарание спасибо.Принимается любая помощь.:thenks:
 
По этому принципу вытаскивать данные
PHP:
<?php
$xml = simplexml_load_file('http://kino-teatr.ua/ru/main/bill_export.phtml');
foreach($xml->shows as $shows)
    {
      foreach($shows->show as $show)
      {
        echo "Начало: ".$show->begin." Конец: ".$show->end."<br>";
      }
    }
 
?>
 
Спасибо, а как условие поставить cinema_id="223" ?
 
PHP:
$string = file_get_contents('http://kino-teatr.ua/ru/main/bill_export.phtml');
preg_match_all("/<show(.*?)>/",$string,$out);
echo "<pre>";
print_r($out);
echo "</pre>";
 
// Дальше по идее распаршиваешь $out[1][n]
// и таким образом как написано ниже выдираешь все нужные значения..
// можно в preg_match_all написать регулярку которая сразу будет выдать только id
Я как бы сам то не сталкивался с таким но думаю что тут прийдется делать вот таким способом. Просто если ты знаешь что ты хочешь увидеть на выходе - то прийдется анализировать структуру документа + можно файл сохранять сразу, чтобы 2 раза не скачивать.
 
Фаил сохранять буду локально на каждый день, а вот с выводом прийдётся мучатся.На выходе хочу вывести всё по одному городу. Кинотеатры =>Фыльмы=>Сеансы, но вопрос остаётся открытым

Непойму почему скрины невыводит ?
PHP:
$xml = simplexml_load_file('http://kino-teatr.ua/ru/main/bill_export.phtml');
foreach($xml->films as $films)
    {
      foreach($films->film as $film)
      {
        echo "Название: ".$film->title."<br>";
        echo "Год: ".$film->year."<br>";
        echo "Рейтинг: ".$film->rating."<br>";
        echo "Описание: ".$film->intro."<br>";
        foreach($films->photos as $photos)
            {   
            echo "<img".$photos->photo.  "alt='Скрин'>";
            }
       
        echo "<HR>";
      }
    }

PHP:
 $xmlstr = file_get_contents('http://kino-teatr.ua/ru/main/bill_export.phtml');
$x = new SimpleXMLElement($xmlstr); // код вашей xml-ки
var_dump($x->xpath("//film[@id=120]"));
echo "Title: ".$film->title;
Почему выводит только Title:, и пустота .....?
 
PHP:
 $xmlstr = file_get_contents('http://kino-teatr.ua/ru/main/bill_export.phtml');
$x = new SimpleXMLElement($xmlstr); // код вашей xml-ки
var_dump($x->xpath("//film[@id=120]"));
echo "Title: ".$film->title;
Почему выводит только Title:, и пустота .....?
Потому что надо вызывать функцию которая помещена в переменную:
PHP:
  $xmlstr = file_get_contents('http://kino-teatr.ua/ru/main/bill_export.phtml');
$x = new SimpleXMLElement($xmlstr); // код вашей xml-ки
$film=$x->xpath("//film[@id=120]");
echo "Title: ".$film[0]->title;
 
Потому что надо вызывать функцию которая помещена в переменную:
PHP:
  $xmlstr = file_get_contents('http://kino-teatr.ua/ru/main/bill_export.phtml');
$x = new SimpleXMLElement($xmlstr); // код вашей xml-ки
$film=$x->xpath("//film[@id=120]");
echo "Title: ".$film[0]->title;
Спасибо большое , за ответ.
Подскажите а как вывести скрины , а то этот foreach скоро сума сведёт.
HTML:
<films>
                    <film id="120">
                <title orig="101 Dalmatians">101 долматинец</title>
                <duration>0</duration>
                <year>1996</year>
                <age_limit>0</age_limit>
                <budget currency="usd">0</budget>
                <intro><![CDATA[Круэлла Де Вит владеет богатой коллекцией мехов. Они являются ее страстью, и заставляют совершать ужасные поступки, например, убийство. Ее коварный план близок к осуществлению. .]]></intro>
                <text><![CDATA[]]></text>
                <rating votes="9">7.22222</rating>
                <pro_rating votes="0">0</pro_rating>
                <photos>
                                            <photo src="http://kino-teatr.ua/public/main/films/photo_498f906a3b1e4.jpg"/>
                                            <photo src="http://kino-teatr.ua/public/main/films/photo_498f906a9d09b.jpg"/>
 
PHP:
$xmlstr = file_get_contents('http://kino-teatr.ua/ru/main/bill_export.phtml');
$x = new SimpleXMLElement($xmlstr); // код вашей xml-ки
$film=$x->xpath("//film[@id=120]");
foreach($film[0]->photos->photo as $k){
    $obj=current($k);
    echo $obj['src']."\n";
}
 
Назад
Сверху