Hallo,
ich habe einen XML File, von dem ich einige der Inhalte in einer HTML Datei anzeigen möchte.
Ich bastle an einer Lösung mit xml_parser_create() in PHP.
Da ich blutiger Anfänger bin habe ich mich eines Scriptes aus "PHP für Dummies" bedient und entsprechend.
Das klappt auch im Grossen und Ganzen. 2 Probleme habe ich allerdings.
1. in einem Element des XML Files können 2 Werte stehen. Je nachdem welcher Wert drin steht sollen unterschiedliche Grafiken angezeigt werden.
2. Am Ende der Ausgabe stehen immer 2 "-", obwohl diese im XML File überhaupt nicht vorkommen.
Weiss jemand wie ich das mit den Grafiken hinbekomme? Kann ich irgendwie auf mit der Funkion auch den Inhalt abfragen?
Wie kann ich die "-" unterdrücken?
Danke
Prolli
Hier der Code:
<html>
<head>
<title>TEST</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" >
<?php
// Die XML-Datei angeben.
$xmldatei = file("test.xml");
function startElement($xmlparser, $element) {
global $html_ausgeben;
// den Elementnamen zur Sicherheit in Kleinbuchstaben umwandeln
$element = strtolower($element);
// Den Elementnamen überprüfen
if ($element=="time") {
$html_ausgeben .= "<table><tr><td class=t_content>Zeit: ";
}
if ($element=="date") {
$html_ausgeben .= "<td class=t_content>Datum:";
}
if ($element=="currentprice") {
$html_ausgeben .= "<tr><td colspan=2 class=t_content>Aktueller Kurs:";
}
if ($element=="arrow") {
$html_ausgeben .= "<tr><td colspan=2 class=t_content>Aktueller Kurs:";
}
}
function endElement($xmlparser, $element) {
global $html_ausgeben;
// den Elementnamen zur Sicherheit in Kleinbuchstaben umwandeln
$element = strtolower($element);
// Den Elementnamen überprüfen
if ($element=="time") {
$html_ausgeben .= "</td> ";
}
if ($element=="date") {
$html_ausgeben .= "</td></tr>";
}
if ($element=="currentprice") {
$html_ausgeben .= "</td></tr></table>";
}
}
function cdata($xmlparser, $element) {
global $html_ausgeben;
// Den eigentlichen Text des Dokuments an $html_ausgeben anhängen
$html_ausgeben .= $element;
}
// Den XML-Parser erzeugen
$xmlparser = xml_parser_create();
// Das Element-Ereignis auslösen, wenn der Parser
// auf ein Start- oder Endelement trifft
xml_set_element_handler($xmlparser, "startElement", "endElement");
// Mit dieser Funktion die Daten (nicht die Tags!) verarbeiten
xml_set_character_data_handler($xmlparser, "cdata");
// Den Inhalt des Arrays Element für Element
// durch die Funktion xml_parse() parsen
foreach($xmldatei as $elem) {
xml_parse($xmlparser, $elem);
}
// Die Ressourcen des XML-Parsers wieder freigeben und diesen zerstören
xml_parser_free($xmlparser);
// Die erzeugte HTML-Datei ausgeben
echo $html_ausgeben;
?>
</body>
</html>