hab eine klasse mit methoden oder funktionen , eine funktionen hat aber weitere funktionen in der funktion ... siehe unten. problem - ich möchte gern in der XMLstartElement funktion auf eine variable zugreifen $this->PrimaryKey aber egal was ich mache ich krieg keinen zugriff drauf, auch mit global hab ich es schon versucht ... was kann ich hier machen das übersteigt grad voll meinen horizont. wie komm ich aus der XMLstartElement funktion an die variable ... jemand ein tip?
PHP-Code:
class SQLtoXML
{
var $ErrorCount;
var $ErrorInfo = "";
var $Direction = "export"; //import : export
var $SqlMode = "mysql"; // pear : mysql
var $XmlHandler = "";
var $XmlVersion = "1.0";
var $XmlEncoding = "UTF-8";
var $SqlTables = "";
var $SqlQuery = false;
var $SqlArgument = false;
var $SqlFields = array();
var $XmlFields = array();
var $Xml = "";
var $XmlBody = "";
var $XmlFirstChild = "";
var $XmlSecondChild = "";
var $DuplicateStructure = true;
var $PrimaryKey = false;
function setPrimaryKey($primarykey)
{
$this->PrimaryKey = $primarykey;
}
function buildXmlHandler($xmlhandler)
{
$xml_string = "";
$xml_array = array();
while(list($key,$value) = each($xmlhandler)):
$xml_string .= str_replace("_"," ",stripslashes($key)) ."=". utf8_decode(stripslashes($value));
endwhile;
function XMLstartElement($parser,$name,$attrs = NULL)
{
echo $this->PrimaryKey;
}
function XMLendElement($parser, $name)
{
}
function XMLvalueElement($parser,$value)
{
}
$xml_parser = xml_parser_create();
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING,false);
xml_set_element_handler($xml_parser,"XMLstartElement","XMLendElement");
xml_set_character_data_handler($xml_parser,"XMLvalueElement");
if(!xml_parse($xml_parser,$xml_string,true)):
$this->SetError("XML ERROR - ".xml_error_string(xml_get_error_code($xml_parser)." in line ".xml_get_current_line_number($xml_parser)));
endif;
print_r($xml_array);
xml_parser_free($xml_parser);
}
}
Kommentar