WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.


Forum » PHP & MySQL » Xml Datei in php inkludieren » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

Xml Datei in php inkludieren
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


Nach oben