Hallo,
ich habe gesucht, nun frage ich. Sollte meine Frage irgendwo doch schon stehen, dann bitte pm an mich und ihr könnt meinen Beitrag löschen.
Mein Problem: Ich möchte eine Webseite mit teilweise austauschbaren Inhalten ohne Frames realisieren. PHP lerne ich gerade und XML hab ich die Syntax denke ich begriffen. Hier einige Codeschnipsel:
Die Start-XML-Datei:
Das wird dann per CSS formatiert:
Die index.php sieht grad so aus:
Der link auf "seite2.xml" ist noch statisch (klar, muss noch geändert werden), aber ich bekomme das Grundprinzip anscheinend nicht hin, denn was ich will ist ja, dass der Text von seite2.xml (sieht aus wie die oben angezeigte startseite.xml) dahin geparst wird, wo vorher der andere Text stand.
Ich suche nun verzweifelt danach und hoffe, dass mir jemand diesen kleinen Denkanstoss geben kann.
Vielen vielen Dank schonmal.
ich habe gesucht, nun frage ich. Sollte meine Frage irgendwo doch schon stehen, dann bitte pm an mich und ihr könnt meinen Beitrag löschen.
Mein Problem: Ich möchte eine Webseite mit teilweise austauschbaren Inhalten ohne Frames realisieren. PHP lerne ich gerade und XML hab ich die Syntax denke ich begriffen. Hier einige Codeschnipsel:
Die Start-XML-Datei:
Code:
<?xml version="1.0"?> <me> <hauptmenue> <eintrag>home</eintrag> <eintrag>seite 1</eintrag> <eintrag>seite 2</eintrag> </hauptmenue> <inhalt> <text> dies ist der anfangstext </text> </inhalt> </me>
Das wird dann per CSS formatiert:
Code:
#links { position: absolute; top: 0px; left: 0px; width: 140px; height: 400px; } #main { position: absolute; top: 140px; left: 150px; width: 660px; height: 260px; }
Die index.php sieht grad so aus:
PHP-Code:
<html>
<head>
<link rel="stylesheet" type="text/css" href="test.css">
</head>
<body>
<?php
function startElement($parser, $element_name, $element_attribute) {
global $ausgabe;
switch (strtolower($element_name)) {
case "hauptmenue":
$ausgabe .= "<div id=\"links\">";
break;
case "eintrag":
$ausgabe .= "<p><a href=\"seite2.xml\" target=\"main\">";
break;
case "inhalt":
$ausgabe .= "<div id=\"main\">";
break;
}
}
function endElement($parser, $element_name) {
global $ausgabe;
switch (strtolower($element_name)) {
case "hauptmenue":
$ausgabe .= "</div>";
break;
case "eintrag":
$ausgabe .= "</a></p>";
break;
case "inhalt":
$ausgabe .= "</div>";
break;
}
}
function cdata($parser, $element_inhalt) {
global $ausgabe;
// Der normale Text wird an $ausgabe angehängt
$ausgabe .= $element_inhalt;
}
$xmlFile = file("startseite.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;
?>
</body>
</html>
Der link auf "seite2.xml" ist noch statisch (klar, muss noch geändert werden), aber ich bekomme das Grundprinzip anscheinend nicht hin, denn was ich will ist ja, dass der Text von seite2.xml (sieht aus wie die oben angezeigte startseite.xml) dahin geparst wird, wo vorher der andere Text stand.
Ich suche nun verzweifelt danach und hoffe, dass mir jemand diesen kleinen Denkanstoss geben kann.
Vielen vielen Dank schonmal.
EDIT:
code- und php.tags by Abraxax
Kommentar