XML- parsen mehrerer Dateien
Sonia
- php
Hi,
jetzt hab ich noch ein anderes Problem.
ich parse in meinem dokument mehrere XML Dateien
und das ergebnis dessen ist etwas komisch.
irgendwie wird nur eine Datei ausgegeben und die
andere nicht.
die passenden xml-dateien sind unter:
<www.los-arcos.net/inhalt.xml>
<www.los-arcos.net/text1.xml>
<www.los-arcos.net/themen1.xml>
das hier ist mein dokument:
<html>
<head>
<title>Hauptseite</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.unnamed1 { font-family: Arial, Helvetica, sans-serif; font-size: 9pt; color: #CCCCFF; font-weight: bold}
.Ueberschrift { font-family: Arial, Helvetica, sans-serif; font-size: 14pt; color: #9999FF; font-weight: bold }
-->
</style>
</head>
<body bgcolor="#FFFFFF" background="images/DSC01176_2.gif" link="#660066" vlink="#660066" alink="#660066">
<div id="Layer1" style="position:absolute; width:200px; height:466px; z-index:1; left: 804px; top: 21px; background-color: #000066; layer-background-color: #000066; border: 1px none #000000">
<div align="center" class="ueberschrift">
<p>Unter - Themen:</p>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<?PHP
$xmlFile = file("themen$men.xml");
$parser = xml_parser_create();
xml_set_element_handler($parser, "startElement","endElement");
xml_set_character_data_handler($parser, "cdata");
foreach($xmlFile as $elem)
{
xml_parse($parser, $elem);
}
xml_parser_free($parser);
echo 'nr1';
echo $ausgabe;
unset ($ausgabe);
unset ($xmlFile);
unset ($parser);
?>
</table>
</div>
</div>
<center>
<table border="0" cellspacing="0" cellpadding="0" align="center">
<?PHP
if (!isset($men))
{
//echo '<span class="Ueberschrift">INHALT</span><br><br>';
$xmlFile = file("inhalt.xml");
$parser = xml_parser_create();
xml_set_element_handler($parser, "startElement","endElement");
xml_set_character_data_handler($parser, "cdata");
foreach($xmlFile as $elem)
{
xml_parse($parser, $elem);
}
xml_parser_free($parser);
echo $ausgabe;
unset ($ausgabe);
unset ($xmlFile);
unset ($parser);
}
else
{
if ($men==1)
{
echo 'tet';
$xmlFile2 = file("text$men.xml");
$parser2 = xml_parser_create();
xml_set_element_handler($parser2, "startElement","endElement");
xml_set_character_data_handler($parser2, "cdata");
foreach($xmlFile2 as $elem)
{
xml_parse($parser2, $elem);
}
xml_parser_free($parser2);
echo $ausgabe;
unset ($ausgabe);
unset ($xmlFile2);
unset ($parser2);
}
}
//***** Auslesefunktionen ******
function startElement($parser, $element_name, $element_attribute)
{
global $ausgabe;
$element_name = strtolower($element_name);
switch ($element_name)
{
case "kapitel$submen":
$ausgabe .= "";
break;
case "leer":
$ausgabe .= "<TD><img src="images/shim.gif" width="100" height="1"> ";
break;
case "abschnitt":
$ausgabe .= "<TR>";
break;
case "gesamttitel":
$ausgabe .= "<TD><center><span class="Ueberschrift">";
break;
case "thema":
$ausgabe .= "<TR>";
break;
case "link":
$ausgabe .= "<TD><div align="left"><span class="unnamed1"><A HREF=";
break;
case "href":
$ausgabe .= """;
break;
case "titel":
$ausgabe .= "<TD><img src="images/shim.gif" width=50 height=1></TD><TD class="unnamed1">";
break;
case "text":
$ausgabe .= "<tr><td><br><br><div align="left"><span class="unnamed1">";
break;
case "header":
$ausgabe .= "<tr><td><br><br><div align="left"><span class="ueberschrift">";
break;
default:
break;
}
}
function endElement($parser, $element_name)
{
global $ausgabe;
$element_name = strtolower($element_name);
switch ($element_name)
{
case "leer":
$ausgabe .= "</TD>";
break;
case "abschnitt":
$ausgabe .= "</TR>";
break;
case "gesamttitel":
$ausgabe .= "<span class="Ueberschrift"></center></TD>";
break;
case "thema":
$ausgabe .= "</TR>";
break;
case "link":
$ausgabe .= "</A></SPAN></DIV></TD>";
break;
case "href":
$ausgabe .= "" target="_self">";
break;
case "linkname":
$ausgabe .= "";
break;
case "titel":
$ausgabe .= "</TD>";
break;
case "text":
$ausgabe .= "</span></div></td></tr>";
break;
case "header":
$ausgabe .= "</div></span></td></tr>";
break;
default:
break;
}
}
function cdata($parser, $element_inhalt)
{
global $ausgabe;
$ausgabe .= $element_inhalt;
}
?>
</table>
</center>
</body>
</html>
nochwas, wer sich das fertige teil anschauen möchte
kann unter
http://www.los-arcos.net/tmp/index.htm
nachschauen.
wenn man auf den link klickt, dann erscheint rechts
Überschrift
text
das (text1.xml) sollte aber in der mitte erscheinen
statt dessen wird es eben da ausgegeben wo eigentlich
der inhalt von themen1.xml stehen sollte