Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Maykel-ctba

Como pegar determinado campo do XML?

Recommended Posts

Fala galera, tenho o seguinte XML:

<item>
	<title>Nova Inauguração – Gelita</title>
	<link>http://blog.exal.com.br/nova-inauguracao-gelita/</link>
	<pubDate>Wed, 06 Apr 2016 13:55:31 +0000</pubDate>
	<dc:creator><![CDATA[admin]]></dc:creator>
	<category><![CDATA[Inaugurações]]></category>
	<guid isPermaLink="false">http://blog.exal.com.br/?p=186</guid>
	<description><![CDATA[A Exal acaba de inaugurar mais unidade em São Paulo, na cidade de Cotia. A empresa em questão agora é a GELITA – Líder mundial no fornecimento de proteínas de colágeno para as indústrias de alimento, saúde e nutrição, produtos farmacêuticos e diversas aplicações técnicas. Desejamos muito sucesso a essa nova parceria! Confira abaixo algumas…]]></description>
	<content:encoded><![CDATA[<p>A Exal acaba de inaugurar mais unidade em São Paulo, na cidade de Cotia.</p>
<p>A empresa em questão agora é a GELITA – Líder mundial no fornecimento de proteínas de colágeno para as indústrias de alimento, saúde e nutrição, produtos farmacêuticos e diversas aplicações técnicas.</p>
<p>Desejamos muito sucesso a essa nova parceria!</p>]]></content:encoded>
	<enclosure url="http://blog.exal.com.br/wp-content/uploads/2016/04/12167313_996426130410597_1872098805_n-1-150x150.jpg" length="8689" type="image/jpg" />
</item>

Estou tentando pegar o conteúdo deste XML para inserir no meu site, desta maneira:

$feed = file_get_contents('http://blog.exal.com.br/feed');
$rss = new SimpleXmlElement($feed);

foreach($rss->channel->item as $post) {
        $imagemNoticia = $post->enclosure;
        $listaNoticia .= "
        <div class=\"col-sm-4\">
            <a class=\"itemOpacity\" href=\"".$post->link."\" title=\"Ir para: Notícias > ".$post->title."\">
                <img src=\"".$imagemNoticia."\" alt=\"Imagem: ".$post->title."\" class=\"img-responsive\" />
                <h2>".$post->title."</h2>
                <p>".str_truncate(strip_tags($post->description),220)." [...]</p>
            </a>
        </div>"; 
}

Consigo pegar tudo, menos o "enclosure" (na verdade, quero o que está dentro de URL, em enclosure).

 

Como posso pegar? Tentei:

$post->enclosure->url

Sem sucesso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Argh, me odeio!

$post->enclosure['url']

Desta maneira, foi.

 

@DSerma, enquanto postava esta solução aqui, a sua chegou, hehe. Vou testar para fins de conhecimento, mas valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por favor poderia postar aqui como ficaria o código com essa implementação? Estou tentando exibir o feed de outro blog com foto, entretanto com o código que você informou consigo pegar apenas o titulo e link. Tentei dessa forma, mas não consegui:

<?php
          $rss = new DOMDocument();
          $rss->load('http://antenacritica.com.br/feed');
          $feed = array();
          foreach ($rss->getElementsByTagName('item') as $node) {
          $item = array (
          'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
          'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
          'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
          'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
		  
          );
          array_push($feed, $item);
          }
          $limit = 10;
          for($x=0;$x<$limit;$x++) {
          $title = str_replace(' & ', ' & ', $feed[$x]['title']);
          $link = $feed[$x]['link'];
          $description = $feed[$x]['desc'];
          $date = date('l F d, Y', strtotime($feed[$x]['date']));
		  $post = enclosure->attributes()->url;
          echo '<div class="feed-img">';
          echo $description;
          echo '<h1><strong><a href="'.$link.'" title="'.$title.'">'.$title.'</a></h1>';
          echo '<small><em>Posted on '.$date.'</em></small>';
          echo '</div>';
          }
          
          ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.