xml parser
HejJeg bruger nedenstående xml parser men kan ikke finde ud af hvordan jeg skal gøre hvis jeg f.eks kun ønsker 3 items vist.
Nogen der kan hjælpe?
<?
class RSSParser {
var $title = "";
var $link = "";
var $description = "";
var $inside_item = false;
function startElement( $parser, $name, $attrs='' ){
global $current_tag;
$current_tag = $name;
if( $current_tag == "ITEM")
$this->inside_item = true;
}
function endElement( $parser, $tagName, $attrs='' ){
global $current_tag;
if ( $tagName == "ITEM" ) {
printf( "\t<div style='margin-bottom: 5px; margin-left: 10px; margin-right: 10px;'><img src='/images/reddot.gif' width='9' height='11' alt='' border='0'><a class='vmenu' href='%s' target='_blank'>" . str_replace("'","'",$this->title) . "</a></div>\n", trim( $this->link ), htmlspecialchars( trim( $this->title ) ) );
$this->title = "";
$this->description = "";
$this->link = "";
$this->inside_item = false;
}
}
function characterData( $parser, $data ){
global $current_tag;
if( $this->inside_item ){
switch($current_tag){
case "TITLE":
$this->title .= $data;
break;
case "DESCRIPTION":
$this->description .= $data;
break;
case "LINK":
$this->link .= $data;
break;
default:
break;
}
}
}
function parse_results( $xml_parser, $rss_parser, $file ) {
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("$file","r") or die( "Error reading XML file, $file" );
while ($data = fread($fp, 4096)) {
xml_parse( $xml_parser, $data, feof($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 );
}
}
global $rss_url;
$rss_url = "http://www.dmi.dk/dmi/rss-nyheder";
$xml_parser = xml_parser_create();
$rss_parser = new RSSParser();
$rss_parser->parse_results( $xml_parser, &$rss_parser, $rss_url );
?>