ich habe zwei kleine grosse probleme. das eine ist, dass ich php immer mehr hasse weil man einfach nicht sauber programmieren kann.
das andere ist, dass ich es nicht schaffe die handler in eine klasse einzubinden:
xml_set_element_handler($this->parser, "startElement", "endElement");
funktioniert leider nicht.
ich habe es auch schon mit:
xml_set_element_handler($this->parser, "$this->startElement", "$this->endElement");
probiert aber alles fehlanzeige. kennt hier jemand die lösung. dann hätte ich zwei probleme weniger.
- Code: Select all
class LangDef{
var $language;
var $du_sie;
var $langdefArray = array();
var $current_lang_id;
var $current_language;
var $current_data;
var $parser;
function LangDef($language, $du_sie){
$this->language = strtolower($language);
$this->du_sie = strtolower($du_sie);
$this->parser = xml_parser_create();
xml_set_element_handler($this->parser, "startElement", "endElement");
xml_set_character_data_handler($this->parser, "characterData");
$data = xml_parse($this->parser,file_get_contents("shared/xml/langdef.xml",1));
if(!$data) {
die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($this->parser)), xml_get_current_line_number($this->parser)));
}
}
// *** Start Parserfunktionen
function startElement($parser, $elementName, $attributes){
if($elementName == "SATZ"){
$this->current_lang_id = $attributes['NR'];
}
if($elementName == "DE"){
$this->current_language = "de";
}
if($elementName == "FR"){
$this->current_language = "fr";
}
if($elementName == "IT"){
$this->current_language = "it";
}
if($elementName == "EN"){
$this->current_language = "en";
}
if($elementName == "SK"){
$this->current_language = "sk";
}
}
function characterData($parser, $data){
$this->current_data = $data;
}
function endElement($parser, $elementName){
if($elementName == "DU"){
echo $this->current_lang_id."_".$this->current_language."_du ".$this->current_data."<br>";
}
if($elementName == "SIE"){
echo $this->current_lang_id."_".$this->current_language."_sie ".$this->current_data."<br>";
}
}
// *** Ende Parserfunktionen
function getDef($nr){
$key = $nr."_".$this->language."_".$this->du_sie;
return $this->langdefArray[$key];
}
function getUserLanguage(){
return $this->language;
}
function getDuSie(){
return $this->du_sie;
}
}
Gruss, Schmiditsch