Hi All,
 I've been playing with parsing RDF/XML files using PHP (code snippet
below). However I'm having trouble trying to work out how to actually
format the results in an order. My source is in the form

<item>
<title>Politicizing Science</title>
<link>http://slashdot.org/article.pl?sid=02/09/17/0349219</link>
</item>

Now I could easily cope with it if it was link, title as I would just
print <a href=$link>$title</a>. However I just can't work out a way of
doing this, this way. My attempt so far is below (mostly debugging code)

function startElement($parser, $name, $attrs) {
    global $depth,$type,$title,$url;
    for ($i = 0; $i < $depth[$parser]; $i++) {
        print "  ";
    }
    $type = $name;
    $depth[$parser]++;
}

function stopElement($parser, $name) {
    global $depth,$type,$title,$url;
    $depth[$parser]--;
    print "depth parse = $depth[$parser] and  $title !! $url <br> ";
}

function characterData($parser, $data) {
   global $type,$title,$url;
   if ($data)
   {
    switch ($type) {
        case "ITEM":
        case 'LINK':
           $url=$data;
        case "TITLE":
           $title=$data;
        }
    }
}
$file="slashdot.rdf";

$fp= fopen($file,"r");

$parser=xml_parser_create();
xml_set_element_handler($parser,"startElement","stopElement");
xml_set_character_data_handler($parser,"characterData");

while ($data = fread($fp,4096))
xml_parse($parser, $data, feof($fp))
or die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($parser)),xml_get_current_line_number($parser)));

fclose($fp);


As you can see I'm trying to use global variables but I'm just really
unhappy with the quality of the code so any help would be appreciated.

Rgds

Rus foster
--
http://www.fsck.me.uk - Rant wibble wave
http://shells.fsck.me.uk - Hosting and stuff






-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to