Ergebnis 1 bis 3 von 3

Thema: SAX XML-Parsen

  1. #1
    Großmeister(in)
    Registriert seit
    31.10.2005
    Ort
    Bei Muddi, wo sonst
    Beiträge
    524
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard SAX XML-Parsen

    Hi,

    ich versuche Gerade mit PHP eine XML Datei auszulesen (SAX).
    Allerdings gelingt mir das nicht so ganz.
    Hier ist mal der Code. Ich kann den Fehler nicht finden.

    Code:
    class xml_sax{
    	private $parser = NULL;
    	private $currModID = NULL;
    	private $currItemID = NULL;
    	private $itemDat = NULL;
    	private $xml_file = NULL;
    	private $tag_value = NULL;
    
    	private $arrItemCont = array();
    	private $arrModule = array();
    
    
    	public function parse_xml($file){
    		$parser = xml_parser_create();
    
    		xml_set_element_handler($parser, "$this->startHdl", "$this->endHdl");
    		xml_set_character_data_handler($parser, "$this->itemData");
    
    
    		if(!$xml_file = fopen($file, "r")){
    			die("XML-File error");
    		}
    		else{
    			while($tag_value = fread($xml_file, filesize($file))){
    				if(!xml_parse($parser, $tag_value, feof($xml_file))){
    					die(xml_error_string(xml_get_error_code($parser)));
    				}
    			}
    		}
    
    		echo $arrModule[$arrItemCont[0]];
    	}
    
    
    	private function startHdl($parser, $elmName, $attribs){
    		if($elmName == "module"){
    			$currModID = $attribs["id"];
    
    		}
    		elseif($elmName == "item"){
    			$currItemID = $attribs["id"];
    
    		}
    	}
    
    
    	private function itemData($parser, $data){
    		$itemDat = $itemDat + $data;
    	}
    
    
    	private function endHdl($parser, $elmName){
    		if($elmName == "module"){
    			$arrModule[$currModID] = $arrItemCont;
    		}
    		elseif($elmName == "item"){
    			$arrItemCont[$currItemID] = $itemDat;
    		}
    	}
    }
    Es gab wohl schon am Anfang ein Problem, da er innerhalb der Class die Start/End/Daten-Funktion nicht finden konnte.
    Weiß nicht ob ich das richtig gelöst habe das ich als string "$this->Handlername" übergeben habe, aber er wirft mir schon mal keinen Fehler aus.
    Anscheinend werden die Funktionen nicht aufgerufen.
    Kann auch sein, dass ich mit dem objektorientierten Ansatz was falsch gemacht habe, da ich in PHP5 erst einsteige.

    Schon mal vielen Dank

    Mir nicht
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Viele Grüße

    Mir nicht

  2. #2
    Kaiserliche Hoheit Avatar von No0ob
    Registriert seit
    02.01.2006
    Ort
    Nähe Frankfurt
    Beiträge
    1.500
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Und was funktioniert nicht? Fehlermeldung?
    Wo rufst du das auf?

  3. #3
    Großmeister(in)
    Themenstarter

    Registriert seit
    31.10.2005
    Ort
    Bei Muddi, wo sonst
    Beiträge
    524
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Ich bekomme weder eine Ausgabe, noch eine Fehlermeldung.
    Aufruf per:
    Code:
    $sax->parse_xml('datei.xml');
    Der Aufruf klappt auch mit der übergabe der Datei. Nur der Rest nicht.

    //EDIT

    Vielleicht noch hilfreich:
    Die XML-Datei sieht strukturell so aus.

    Code:
    <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
    <?xml-stylesheet href="" type="text/xsl"?>
    
    <dtnet>    
        <module id="menu">
    		<item id="search_data">Irgendwas</item>
    	
    		<item id="create_comp">Irgendwas</item>
    		<item id="create_driver">Irgendwas</item>
    		<item id="create_tractor">Irgendwas</item>
    		<item id="create_semitrail">Irgendwas</item>
    		<item id="create_solovehicle">Irgendwas</item>
    		<item id="create_user">Irgendwas</item>
    		<item id="create_office">Irgendwas</item>
    			
    	</module>    	
    </dtnet>
    Viele Grüße

    Mir nicht

Ähnliche Themen

  1. XHTML-File Parsen
    Von Dominik86 im Forum HTML & CSS Forum
    Antworten: 1
    Letzter Beitrag: 09.07.2008, 18:03
  2. Wie am besten Browserunabhängig childnodes elemente parsen
    Von Soft-ICE-Crack im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 0
    Letzter Beitrag: 15.04.2007, 15:17

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •