rendered paste body<?php
include("dbconnect.php");
$file = "prnews/sample.xml"; // Location of the file where the company uploads using ftp...
////////////////////////////////////////////////////////////////////////////
// A global variable used so that not all elements would be printed since you've asked for only:
// Head Line, Distributor, Location, Date, Abstract, Texte
$flag = 0;
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
// Initialized the following which will be used to as inputs for MySQL //
$hea = 1;
$headline = '';
$dis = 1;
$distributor = '';
$loc = 1;
$location = '';
$dat = 1;
$date = '';
$abs = 1;
$abstract = '';
$tex = 1;
$text = '';
///////////////////////////////////////////////////////////////////////////
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startTag", "endTag");
xml_set_character_data_handler($xml_parser, "contents");
$fp = fopen($file, "r");
$data = fread($fp, 80000);
if(!(xml_parse($xml_parser, $data, feof($fp)))){
die("Error on line " . xml_get_current_line_number($xml_parser));
}
xml_parser_free($xml_parser);
fclose($fp);
//////////////////////////////////////////////////////////////
// Functions for parsing //
function contents($parser, $data){
if ( $GLOBALS['flag'] == 1 )
{
if ( $GLOBALS['hea'] == 1 )
{
echo $data;
$GLOBALS['headline'] .= $data;
}
else if ( $GLOBALS['dis'] == 1 )
{
echo $data;
$GLOBALS['distributor'] .= $data;
}
else if ( $GLOBALS['loc'] == 1 )
{
echo $data;
$GLOBALS['location'] .= $data;
}
else if ( $GLOBALS['dat'] == 1 )
{
echo $data;
$GLOBALS['date'] .= $data;
}
else if ( $GLOBALS['abs'] == 1 )
{
echo $data;
$GLOBALS['abstract'] .= $data;
}
else if ( $GLOBALS['tex'] == 1 )
{
echo $data;
$GLOBALS['text'] .= $data;
}
}
}
function startTag($parser, $data){
switch($data)
{
case 'HEDLINE':
echo "HEAD LINE: <br />";
$GLOBALS['flag'] = 1;
$GLOBALS['hea'] = 1;
break;
case 'DISTRIBUTOR':
echo "<br /><br />DISTRIBUTOR: <br />";
$GLOBALS['flag'] = 1;
$GLOBALS['dis'] = 1;
break;
case 'LOCATION':
echo "<br /><br />LOCATION: <br />";
$GLOBALS['flag'] = 1;
$GLOBALS['loc'] = 1;
break;
case 'STORY.DATE':
echo "<br /><br />DATE: <br />";
$GLOBALS['flag'] = 1;
$GLOBALS['dat'] = 1;
break;
case 'ABSTRACT':
echo "<br /><br />ABSTRACT: <br />";
$GLOBALS['flag'] = 1;
$GLOBALS['abs'] = 1;
break;
case 'BLOCK':
echo "<br /><br />BLOCK: <br />";
$GLOBALS['flag'] = 1;
$GLOBALS['tex'] = 1;
break;
case 'BLOCK':
echo "<br /><br />BLOCK: <br />";
$GLOBALS['flag'] = 1;
$GLOBALS['tex'] = 1;
break;
}
}
function endTag($parser, $data){
$GLOBALS['flag'] = 0;
switch($data)
{
case 'HEDLINE':
$GLOBALS['hea'] = 0;
break;
case 'DISTRIBUTOR':
$GLOBALS['dis'] = 0;
break;
case 'LOCATION':
$GLOBALS['loc'] = 0;
break;
case 'STORY.DATE':
$GLOBALS['dat'] = 0;
break;
case 'ABSTRACT':
$GLOBALS['abs'] = 0;
break;
case 'BLOCK':
$GLOBALS['tex'] = 0;
break;
}
}
mysql_query("INSERT INTO parse ( inc, headline, distributor, location, dat, abstract, texte )
VALUES ( '', '".$GLOBALS['headline']."', '".$GLOBALS['distributor']."', '".$GLOBALS['location']."', '".$GLOBALS['date']."', '".$GLOBALS['abstract']."', '".$GLOBALS['text']."' ) ") or die(mysql_error());
//////////////////////////////////////////////////////////////
?>