Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 25-03-2004, 14:07
erbsland
 Newbie
Links : Onlinestatus : erbsland ist offline
Registriert seit: Jan 2002
Beiträge: 22
erbsland ist zur Zeit noch ein unbeschriebenes Blatt
erbsland eine Nachricht über ICQ schicken
Unhappy wie parse ich den tag <dc:date> ?

hi leute
ich hab hier ne site auf der ich ein RSS feed parse. alles klappt wunderbar. nun wollte ich noch einen anderen rss feed parsen, bei diesem feed ist jedoch das datum in diesem tag eingeschlossen
<dc:date>
anstelle von
<pubdate>

kann mir jemand helfen, wie ich diesen tag auslesen kann? irgendwie scheine ich das nicht ganz zu schaffen. hier ist noch mein code:

PHP-Code:
    $m 1;
    
$newz = array();

    class 
draque
    
{
        
// globale Variablen anlegen
        
var $insideitem false;
        var 
$tag "";
        var 
$title "";
        var 
$description "";
        var 
$link "";
        var 
$pubdate "";

        function 
startElement($parser$tagName$attrs)
        {
            
// Schauen, obman sich im ITEM tag befindet
            
if ($this->insideitem)
            {
                
$this->tag $tagName;
            }
                elseif (
$tagName == "ITEM")
            {
                
$this->insideitem true;
            }
        }

        function 
endElement($parser$tagName)
        {
            if(
$tagName == "ITEM")
            {
                global 
$newz;
                global 
$m;

                
array_push$newz$m,$this->pubdate$this->link$this->title );

                
$this->title "";
                
$this->description "";
                
$this->link "";
                
$this->insideitem false;
                
$this->pubdate "";
                
$m++;
            }
        }

        function 
characterData($parser$data)
        {
            if (
$this->insideitem)
            {
                switch (
$this->tag)
                {
                    case 
"PUBDATE":
                    
$this->pubdate .= $data;
                    break;

                    case 
"TITLE":
                    
$this->title .= $data;
                    break;

                    case 
"DESCRIPTION":
                    
$this->description .= $data;
                    break;

                    case 
"LINK":
                    
$this->link .= $data;
                    break;
                }
            }
        }
    }

    
$xml_parser xml_parser_create();
    
$rss_parser = new draque();
    
xml_set_object($xml_parser,&$rss_parser);
    
xml_set_element_handler($xml_parser"startElement""endElement");
    
xml_set_character_data_handler($xml_parser"characterData");
    
$fp fopen("http://games.slashdot.org/games.rss","r")
        or die(
"Error reading RSS data.");
    while (
$data fread($fp4096))
        
xml_parse($xml_parser$datafeof($fp))
            or die(
sprintf("XML error: %s at line %d",
                
xml_error_string(xml_get_error_code($xml_parser)),
                
xml_get_current_line_number($xml_parser)));
    
fclose($fp);
    
xml_parser_free($xml_parser);

    
// Hier wird das array in 4er aufgeteilt, damit man es brauchbar auslesen kann
    
$cnt count$newz );
    
$wo 0;
    for( 
$i=0$i $cnt$i++)
    {
        switch(
$wo)
        {
            case 
0$counter=$newz[$i]; break;
            case 
1$datum=$newz[$i]; break;
            case 
2$link=$newz[$i]; break;
            case 
3$descr=$newz[$i]; break;
        }
        
$wo++;
        if( 
$wo //Wenn $wo 4 ist sind alle Daten des aktuellen Datensatzes gesetzt
        
{
            
$pieces explode" - "$descr );

            
// Datum wird umformatiert
            
$splitdate explode (" "$datum);
            
$newdate $splitdate[1] . ".&nbsp;" $splitdate[2] . ".&nbsp;" $splitdate[3] . ": ";

            if( 
$counter )
            {
              if( 
strlen$descr ) > 45 )
        {
          
$dots "...";
        } else {
          
$dots "";
        }
        
$cutted substrhtmlspecialcharsstripslashes$descr ) ) , 045 );

              
printf ("\n▪&nbsp;<a href=\"javascript:void(2);\"
        onclick=\"window.open('%s','myWindow','width=700,height=700,resizable=yes,left=25,top=25,scrollbars=yes');\">%s</a><br>"
,

        
trim($link),$cutted $dots);
                
// print "\n▪&nbsp;$newdate<a href=\"$link\">$descr</a><br>";
            
}

            
$wo 0;
        }
    }

    unset(
$i); 
danke fuer die hilfestellung!!

dominik
Mit Zitat antworten