er is een probleem met mij xml include file.

Omdat ik meerdere files download en dus deze file
meerdere malen worden gelezen krijg ik de melding:

Warning: xml_parse(): Unable to call handler cdata() in

en

Warning: xml_parse(): Unable to call handler tag_open()


de file welke wordt geincluded is deze:


<?
class xml
{
var $parser;

function xml()
{
$this->parser = xml_parser_create();
xml_set_object($this->parser, &$this);
xml_set_element_handler($this->parser, "tag_open", "tag_close");
xml_set_character_data_handler($this->parser, "cdata");
}

function parse($data)
{
xml_parse($this->parser, $data);
}

function tag_open($parser, $tag, $attributes)
{
global $alltags;
$alltags[] = $tag;
//var_dump($parser, $tag, $attributes);
}

function cdata($parser, $cdata)
{
global $alltags;
$alltags[] = $cdata;
//var_dump($parser, $cdata);
}

function tag_close($parser, $tag)
{
global $alltags;
$alltags[] = 'CLOSE'.$tag;
//var_dump($parser, $tag);
}

} //end of class xml
?>

de manier waarom ik include is:
include_once("./include/xmlclass2.php");



echter als ik include zonder "_once" dus:
include("./include/xmlclass2.php");

dan krijg ik de melding:


wie kan me ff uit de brand helpen...

Thanks
Tim
"dan krijg ik de melding:"

wat voor melding?

Unable to call handler cdata() in .. betekent dat hij hem dus niet kan aanroepen, met wat voor code roep je de class aan?
de file wordt geincluded:

include_once("./include/xmlclass2.php");

en roep hem dan aan dmv:

$xdata = $data;
$xml_parser->parse($xdata);

Een class roep je aan door deze aan een var te 'binden':
<?
$xml_parser = new xml; # dus: new classnaam
$xml_parser->parse($data); # waarom een nieuwe var?
?>

Deze class heb je zeker niet zelf gemaakt als je niet eens weet hoe je hem aan moet roepen
ik moet er wel even bij vermelden dat
het bestand, waarin vervolgens alle files worden geincluded, meerdere malen wordt gebruikt.

Het betreft namelijk een update. Voor ieder categorie
worden alle xml files gedownload en naar mijn ftp account weggeschreven en vervolgens voor een andere categorie begint alles weer van vooraf aan.

Welnu! de eerste update gaat goed. Maar zodra ie met de 2de update begint gaat het fout. Hoogstwaarschijnlijk ligt dat aan de 'include_once'
echter... gebruik ik hier enkel het commando 'include'
dat krijg een andere foutmelding nl.:

Cannot redeclare class xml in ... line ...




hoi Mitch

ik heb je code geprobeerd

$xml_parser = new xml; # dus: new classnaam
$xml_parser->parse($data); # waarom een nieuwe var?

maar nu pakt ie zelfs de eerste update niet eens meer?
:-/

Reageren