Hallo,
ich möchte eine XML Datei parsen und ausgeben. Leider werden dabei die deutschen Umlaute nicht korrekt angezeigt. Den ISO-8859-1 habe ich angegeben. Das Problem entsteht wohl beim parsen, oder?
<?php // In der globalen Variablen $html wird später das<br />// erzeugte HTML gespeichert.
$html = "<?xml version='1.0' encoding='iso-8859-1'?>";
// Die XML-Datei wird in die Variable $xmlFile eingelesen.
// Die implode-Funktion wird verwendet, um Arrays zu einem
// String zusammenzukleben.
$xmlFile = implode("", file("text.xml"));
// Der Parser wird erstellt
$parser = xml\_parser\_create();
// Setzen der Handler (Funktionen startElement, endElement)
xml\_set\_element\_handler($parser,"startElement","endElement");
// Setzen des CDATA-Handlers (Funktion cdata)
xml\_set\_character\_data\_handler($parser, "cdata");
// Parsen.
// Während des Parsens werden die vorher gesetzten
// Handler bei entsprechenden Ereignissen aufgerufen
xml\_parse($parser, $xmlFile);
// Gibt alle verbrauchten Ressourcen wieder frei.
xml\_parser\_free($parser);
// Ausgabe der globalen Variable $html.
print $html;
print "";
/\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
Funktionsdeklarationen
\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*/
function startElement($parser, $name, $atts) {
global $html, $nummer;
// Die XML-Namen werden in Großbuchstaben übergeben.
// Mit strtolower() werden sie in Kleinbuchstaben
// umgewandelt.
switch (strtolower($name)) {
case "title";
$html .=" ";
break;
case "description";
$html .=" ";
break;
case "link":
$html .= " ";
break;
case "item":
$html .= " ";
break;
}
}
function endElement($parser, $name) {
global $html;
switch (strtolower($name)) {
case "name":
$html .="**";
break;
}
}
function cdata($parser, $text) {
global $html;
// Der normale Text wird einfach an $html angehängt:
$html .=$text;
}
?\>**
XML-Datei:
<?xml version="1.0" encoding="iso-8859-1"?>Titel1 Überschrift15.05.2009 |
Nach einer aktuellen Entschiedung
http://www.internet 1.de
Titel2 Überschrift12.05.2009 |
Die Altersgrenze beim Ausbildungsfreibetrag ist auch dann zu beachtenhttp://www.internet 2.de