Class-Problem bei XML-Parsing
Sebastian Will
- php
Hi Forum,
nachdem ich nun nach einigen Tagen vergeblicher Mühe Apache mit Tomcat und Cocoon sowohl unter Linux als auch Windows eingerichtet habe, bin ich auf die XML Funktionalität von PHP gestossen *grr* ;)
Natürlich hab ich gleich was ausprobiert, klappte auch alles wunderbar, nur hat mir das event-based handling der Daten nicht, ich wollte das lieber in einer Listen/Tree-Struktur haben (auch wenn das speicherfressender ist).
Ich habe die Funktionen soweit eingebunden, funktionierte. Als ich das dann in eine Class packen wollte, fingen die Probleme an. Gewünschte Funktionalität: Eine XML-Klasse, die intern das XML-file parst (sorry Swen, schon wieder so ein neudeutsch :)) und dann bereitstellt.
--------------------- snip 8>< ------------------------
class XML {
function XML($file) {
# Setting up the parser
$this->xml_parser = xml_parser_create();
xml_set_element_handler($this->xml_parser, "$this->startElement", "$this->endElement");
$this->file = $file;
}
function parse() {
# Opens the file and parses it
# ...
}
function startElement($parser, $name, $attribs) {
# Zu Testzwecken
echo "huhu";
}
}
--------------------- snip 8>< ------------------------
Das Problem ist, daß er startElement nicht aufruft. Wenn ich den element_handler auf "($this->xml_parser, "startElement", "endElement")" setze, bemängelt er (natürlich), daß er die Funktion nicht finden kann. Referenziere ich mit $this-> auf die Funktion der Klasse, gibt er kein "huhu" aus. Ich vermute, daß ich irgendeine PHP Eigenheit nicht bedenke, gibt es überhaupt die Möglichkeit, das so zu verpacken?
<mfg>Sebastian Will</mfg>
}