von Marcus |
Jau, danke, so gehts ohne Probleme, wie ich mirs vorgstellt habe:
<?php
$datei="neu.xml";
$zeiger=fopen($datei,"r");
$xdatei=fread($zeiger,filesize($datei));
rewind($zeiger);
$xdatei=ereg_replace("<neu>","<table>",$xdatei);
$xdatei=ereg_replace("<kopf>","<tr><td><b>",$xdatei);
$xdatei=ereg_replace("</kopf>","</b></td></tr>",$xdatei);
$xdatei=ereg_replace("<datum>","<tr><td><i>",$xdatei);
$xdatei=ereg_replace("</datum>","</i></td></tr>",$xdatei);
$xdatei=ereg_replace("<text>","<tr><td>",$xdatei);
$xdatei=ereg_replace("</text>","</td></tr>",$xdatei);
$xdatei=ereg_replace("<name>","<tr><td><i>Geschrieben von ",$xdatei);
$xdatei=ereg_replace("</name>","</td></tr>",$xdatei);
$xdatei=ereg_replace("</neu>","</table>",$xdatei);
echo $xdatei;
fclose($zeiger);
|
von inko |
Da bei Dir wohl sämtliche Tags vordefiniert sind kannst Du ja einfach per
ereg_replace oder preg_replace die Tags durch HTML-Tags ersetzen.
Beispiel:
<name>gast</name>
<datum>03.02.1999</datum>
<text>blablablabla</text>
soll zu folgendem werden (je nachdem wie es aussehen soll)
<table><tr><td>NAME: gast</td></tr>
<tr><td>DATUM: 03.02.1999</td></tr>
<tr><td>blablablablablabla</td></td>
</table>
<name> => <table><tr><td>NAME:
</name> => <td></tr>
<datum> => <tr><td>DATUM:
</datum> => </td></tr>
usw...
Also prinzipiell XML-File mit PHP in eine Variable einlesen, eregs drüberlaufen lassen und Variable ausgeben - fertig. |
von Marcus |
Und wie schreib ich mir so einen? Bzw. wo bekomm ich den her? Hab meinen eignen Webserver, also serverseitig ist eigentlich alles möglich. |
von inko |
Nein das reicht nicht, es muß eine serverseitig ausgeführte Transformationsaktion durchgeführt werden. Parser gibt es für u.a. für Java, PHP und Perl, je nach Komplexität des XML-Files kann man auch einen eigenen schreiben, der genau auf Deine Daten passt. |
von Marcus |
Und wo bekomm ich so einen Parser her? Oder reicht es, wenn ich ne xslt-datei inkludiere? |
von inko |
Mit XML bekommt man eine klare Trennung der Daten vom Design, dadurch kann man sie mittels verschiedenen XML-Parsern auch unterschiedlich anzeigen lassen, ist eigentlich ziemlich praktisch. Ich verwende bei Socket-Kommunikation inzwischen ausschliesslich XML, weil man die Daten mittels eines 20 Zeilen-Parsers perfekt in einen Multihash bekommt.
Zu Deinem Problem: Du brauchst einen XSLT-Parser, um aus Deinem XML, mit Hilfe eines XSLT-Stylesheets HTML zu generieren. Natürlich kannst Du Dir auch Deinen eigenen Parser schreiben. |
von Marcus |
Jo, hab ich. Ich hab gedacht, das ich Gästebuch, Neuigkeiten usw., also alles, was abgespeichert werden kann im XML Format speichere. Zum einen, weil ich mich damit recht gut auskenne, zum anderen, weil mein Webhoster kein Mysql unterstützt.
So wie dus geschrieben hast, wirds auch zusammengesetzt, aber der Interpretiert dennoch keine CSS-Dateien. Er schreibt einfach alles in eine Zeile.
|
von Can |
Hm...habe noch nie begriffen, wozu xml (auch xhtml) gut sein soll. Komme mit HTML allein perfekt zurecht... |
von slackerbitch |
ich frage mich, was du eigentlich erreichen magst.
willst du eine website erstellen, bei der der browser xml interpretieren soll?
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41: |
lass es sein - wird doch nur in ie angezeigt.
der aufbau waere z.b. vereinfacht so:
<html>
<head>
<title>hallo</title>
</head>
<body>
<xml id="test">
<INFOS>
<PERSON>
<NACHNAME>Yoyo</NACHNAME>
<VORNAME>Frank</VORNAME>
</PERSON>
<PERSON>
<NACHNAME>Baba</NACHNAME>
<VORNAME>Ali</VORNAME>
</PERSON>
<PERSON>
<NACHNAME>Muster</NACHNAME>
<VORNAME>Karl</VORNAME>
</PERSON>
</INFOS>
</xml>
zeigt namen an.
<br><br>
<table border="0" datasrc="#test">
<tr>
<td><span datafld="VORNAME"></span></td>
<td><span datafld="NACHNAME"></span></td>
</tr>
</table>
</body>
</html>
|
hast du daten, die im xml format vorliegen?
dann wirst du dir ueber einen xml parser gedanken machen muessen.
oder willst du einen rss newsticker machen?
schau doch nach einem tutorial. was auch generell mein tip ist, sich erstmal gedanken zu machen, wofuer xml ueberhaupt sinnvoll ist, denn bei allem hype muss man schon nach konkreten, sinnvollen einsatzmoeglichkeiten suchen. im webdesign sehe ich eigentlich keine funktionierende einsatzmoeglichkeit. als "datencontainer" dagegen macht es sinn. |
von Marcus |
Und wie bearbeite ich die so, daß die CSS angaben korrekt angezeigt werden? Hab mit der Kombi PHP/XML nicht so den Durchblick.
|
von Can |
Aber du kannst natürlich trotzdem HTML-, und XML-Dateien includen. |
von slackerbitch |
php und xml sind zwei paar schuhe.
du kannst also eine xml datei nicht einfach includen sondern musst sie einlesen und dann verarbeiten. |
von Marcus |
Hallo zusammen!
Wie kann ich denn eine XML-Datei in PHP einbinden, die dann auch richtig (also mit CSS-Angaben) angezeigt wird?
Bind ich die mit include("neu.xml") ein passiert gar nix, oder er schreibt alles in eine Zeile.
Bau ich da drumherum ein <xml></xml> Tag, so werden die css Angaben ebenfalls ignoriert.
Hier mal die Quelltexte:
php-Datei:
1:
2:
3: | echo "<xml-stylesheet href="neu.css" type="text/css" id="xmlinsel">";
include("neu.xml");
echo "</xml>"; |
und hier die xml-datei:
1:
2:
3:
4: | <xml>
<kopf>Text</kopf>
<text>Testext</text>
</xml> |
Wer weis da weiter?
Marcus
|
|