Doğru bağlantı çekerek değil SimpleXML

2 Cevap php

Benim kod öğe için uygun bağlantıyı almıyor. Bunun yerine bir önceki öğenin bağlantısını oluyor.

Herhangi bir öneriniz? Teşekkürler!

<?php
// Load the XML data from the specified file name.  
// The second argument (NULL) allows us to specify additional libxml parameters,
// we don't need this so we'll leave it as NULL.  The third argument however is
// important as it informs simplexml to handle the first parameter as a file name
// rather than a XML formatted string.
$pFile = new SimpleXMLElement("http://example.blogspot.com/feeds/posts/default?alt=rss", null, true);  

// Now that we've loaded our XML file we can begin to parse it.
// We know that a channel element should be available within the,
// document so we begin by looping through each channel
foreach ($pFile->channel as $pChild)
{    

    // Now we want to loop through the items inside this channel
    {

    foreach ($pFile->channel->item as $pItem)
    {

        // If this item has child nodes as it should, 
        // loop through them and print out the data


        foreach ($pItem->children() as $pChild)
        { 
            // We can check the name of this node using the getName() method.
            // We can then use this information, to, for example, embolden
            // the title or format a link
            switch ($pChild->getName())
            {
                case 'pubDate':
                    $date = date('l, F d, Y', strtotime($pChild));
                    echo "<p class=\"blog_time\">$date</p>"; 
                    break;

                case 'link':
                    $link = $pChild;
                    break;

                case 'title':

                    echo "<p class=\"blog_title\"><a href=\"$link\">$pChild</a></p>";
                    break;

               case 'description':
                    // echo substr(strip_tags($pChild), 0 , 270) . "...";
                    break;



                case 'author':
                    echo "";
                    break;    
                case 'category':
                    echo "";
                    break;
                case 'guid':
                    echo "";
                    break;

                default:
                    // echo strip_tags($pChild) . "<br />\n";
                    break;
            }

        }

   }


   }

}

?> 

2 Cevap

Belki (maybe I quite don't understand what you're trying to do ?) aptalca bir şey söyleyeceğim, ama böyle bir şey tamam olmaz:

$pFile = new SimpleXMLElement("http://example.blogspot.com/feeds/posts/default?alt=rss", null, true);  
foreach ($pFile->channel->item as $item) {
    echo "date : " . (string)$item->pubDate . '<br />';
    echo "title : " . (string)$item->title . '<br />';
    echo "URL : " . (string)$item->link . '<br />';
    echo '<hr />';
}


Basically, one you have loaded the XML data, you can iterate over its content : it has a simple object/array structure.

Bunun nasıl göründüğünü görmek için, var_dump($pFile); çıkışında bakmak için tereddüt etmeyin ;-)


And this portion of code would display some output like this :

date : Sun, 06 Feb 2005 13:39:00 +0000
title : ROSHAN & 2ND IN COMMAND, WOULD LIKE TO THANK THE FOLLOWING PEOPLE, FOR UNITING WITH US FOR THE PEOPLE OF SRI LANKA. MAY GOD BLESS YOU ALL!
URL : http://example.blogspot.com/2005/02/roshan-2nd-in-command-would-like-to.html
======
date : Sat, 05 Feb 2005 23:26:00 +0000
title : ROSHAN & 2ND IN COMMAND, UNITED!, FOR THE PEOPLE OF SRI LANKA, JOIN US!
URL : http://example.blogspot.com/2005/02/roshan-2nd-in-command-united-for.html
======
date : Sat, 05 Feb 2005 23:01:00 +0000
title : 2ND IN COMMAND!, A HOT EMERGING NEW ARTIST!
URL : http://example.blogspot.com/2005/02/2nd-in-command-hot-emerging-new-artist.html
======
date : Sat, 05 Feb 2005 22:43:00 +0000
title : ICP (IN COMMAND PRODUCTIONS), Hip-Hop R&B Music & much much more!, UNITED!, FOR THE PEOPLE OF SRI LANKA
URL : http://example.blogspot.com/2005/02/icp-in-command-productions-hip-hop-rb.html
======

Peki, HTML etiketlerini görüntülemek istiyorsanız, bu biraz uyarlamak gerekir, ama bu en azından yardım başlarken gerekir ...

Ne bana dışarı atlar Eğer üçüncü Foreach dolarlık pChild ile ilk Foreach dolarlık pChild üzerine yazıyorsanız olmasıdır. Farklı bir değişken adı seçin.