_
toggle menu eXmatrikulationsamt.de
online: 474 gäste

[WEBENV] XML-Datenquelle in PHP/XHTML

nur mit ajax oder auch anders?
Themen Layout: [Standard] · Linear · Outline Thema abonnieren | Thema versenden | Thema drucken
post 15 Aug 2006, 11:25

6. Schein
*******

Punkte: 1338
seit: 18.10.2004

Kennt sich jemand damit aus?

Also ich habe ne XML-Datei incl. eigenem DTD - alles selber gecodet, aber will die jetzt in ne Website einbauen, als quasi bzw. Pseudo-Datenbank.

Leider finde ich nirgends wie das geht. Und nein, ich möchte kein XSLT etc. verwenden. Nur XML / PHP + XHTML & CSS.

THX 4 HELP!

keiner nen plan?

oder geht das quasi nur mit ajax ??

>>projects.xml
Zitat
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE projects SYSTEM "projects.dtd">
<projects>
<project>
<name>Discopunk</name>
<bild1>projects/discopunk1.png</bild1>
<bild2>projects/discopunk2.png</bild2>
<desc1>Page coding // xhtml, php, mysql, css</desc1>
<desc2>Layout optimizing // image cutting</desc2>
<desc3>Thanks to: mars.one + dede</desc3>
</project>
<project>
<name>Dope Dj Culture</name>
<bild1>projects/ddc05.png</bild1>
<bild2>projects/ddc06.png</bild2>
<desc1>Content</desc1>
<desc2>Page coding // xhtml, php, css</desc2>
<desc3>Layouting</desc3>
</project>
<project>
<name>Beatcity</name>
<bild1>projects/beatcity1.png</bild1>
<bild2>projects/beatcity2.png</bild2>
<desc1>Idea, concept, promotion, administration</desc1>
<desc2>Page coding // xhtml, css</desc2>
<desc3>Layouting</desc3>
</project>
<project>
<name>Chantals Welt</name>
<bild1>projects/chantal1.png</bild1>
<bild2>projects/chantal2.png</bild2>
<desc1>Page coding // xhtml, css</desc1>
<desc2>Layouting</desc2>
<desc3>thanks to: Annelie Schober</desc3>
</project>
<project>
<name>Foto-Wittmair</name>
<bild1>projects/fowittmair1.png</bild1>
<bild2>projects/fowittmair2.png</bild2>
<desc1>Page coding // html, css</desc1>
<desc2>Layouting</desc2>
<desc3>Thanks to: Mario Ratzel</desc3>
</project>
<project>
<name>Boys can cook</name>
<bild1>projects/boyscancook1.png</bild1>
<bild2>projects/boyscancook2.png</bild2>
<desc1>Idea, concept, maintenance, administration</desc1>
<desc2>Page coding, layout // xhtml, css</desc2>
<desc3>Content</desc3>
</project>
<project>
<name>BNZ . Style</name>
<bild1>projects/bnz1.png</bild1>
<bild2>projects/bnz2.png</bild2>
<desc1>Idea, concept, maintenance, administration</desc1>
<desc2>Page coding, layout // xhtml, css</desc2>
<desc3>Content</desc3>
</project>
<project>
<name>BSZ Floeha RIP</name>
<bild1>projects/bsz1.png</bild1>
<bild2>projects/bsz2.png</bild2>
<desc1>Idea, content, concept, maintenance, administration</desc1>
<desc2>Page coding, layout // xhtml, css</desc2>
<desc3>Thanks to: WG01/U01/WG02</desc3>
</project>
<project>
<name>BlockRockinBeats at Wu-Area</name>
<bild1>projects/brb1.png</bild1>
<bild2>projects/brb2.png</bild2>
<desc1>Idea, concept, maintenance, administration</desc1>
<desc2>Page coding, layout // xhtml, css, php</desc2>
<desc3>Thanks to: Sven, GunJa, Steppenwolle and WU5</desc3>
</project>
</projects>


>>projects.dtd
Zitat
<!ELEMENT projects (project)*>
<!ELEMENT project (name, bild1, bild2, desc1, desc2, desc3)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT bild1 (#PCDATA)>
<!ELEMENT bild2 (#PCDATA)>
<!ELEMENT desc1 (#PCDATA)>
<!ELEMENT desc2 (#PCDATA)>
<!ELEMENT desc3 (#PCDATA)>


jedes project soll in einer html-seite (ausgelesen durch php) angezeigt werden, allerdings dynamisch ..

DANKE und grüße aus berlin =)
ProfilPM
AntwortenZitierenTOP
post 15 Aug 2006, 13:09

Alles Kapot!
*******

Punkte: 1459
seit: 08.04.2004

Google mal nach "PHP XML Parser".

Da findest du zb: http://www.heise.de/ix/artikel/2001/04/201/


--------------------
*~ Samurai.FM ~*
ProfilPM
AntwortenZitierenTOP
post 15 Aug 2006, 13:17
avatar
2. Schein
**

Punkte: 90
seit: 22.08.2005

Anmerkung: ich habe die Erfahrung gemacht, das es bei einfachen XML Dateien (ohne Element-Attribute z.b.) bequemer und schneller ist preg_match_all zu verwenden.
Anonsten bietet der IX Artikel eine gute Einleitung. Auch die Beispiele & Kommentare im Online PHP-Handbuch sind dazu - wie ich finde - sehr gut. -> http://php.net/xml


--------------------
ProfilPM
AntwortenZitierenTOP
post 15 Aug 2006, 13:39
avatar
Ivan
*********

Punkte: 3352
seit: 01.04.2006

hier ist mein programmiertes Gästebuch.

Da habe ich allerdings XML + XSL verwendet. Php hat nen einfachen XSL Prozessor und nen XML parser und damit funzt das alles richtig super. Kannst dir ja den Code auf der Seite angucken.


http://141.30.216.90/Home/Neu/Index.php?pa...e=Show&action=1



Ganz weiß ich noch nicht was du machen willst. Also du möchtest die in XML stehenden daten mit PHP verarbeiten und sozusagen mit ECHO ausgeben, bzw an den Browser senden?

Wenn das deine Intention ist benutzt du die PHP DOM Klasse.

http://us2.php.net/manual/de/ref.dom.php

CODE

$doc = new DOMDocument();
//$doc->validateOnParse = true; damit wird dein XML gleich validiert, nach deiner DTD die du in der XML datei angegeben hast, versteht sich
$doc->load("PfadzuDeinerXMLdatei.xml");


So damit hast du die datei geladen. Jetzt willst du sicher auf die einzelnen Elemente zugreifen. Dafür würde ich dir vorschlagen Indizes zu vergeben. Dann kannst du ganz einfach die Funktion

CODE

$doc->getElementById($Index);

oder eben wenn keine Indizes vergeben.

$doc->getElementsByTagName($blabla);


benutzen.

Dom XML Klasse ist für ältere PHP versionen.

Dieser Beitrag wurde von No Name: 15 Aug 2006, 13:41 bearbeitet


--------------------
T for Vendetta.

On his way to return to innocence.

"Man, was die uns erzählt hat, kam aus einem Buch, das muss einer geschrieben haben, der keine Ahnung von dem hatte, worüber er sich ausließ."

"Miles, hörst Du den Vogel da draußen? Das ist 'ne Spottdrossel. Sie hat keine eigene Stimme, sie macht nur die Stimmen der anderen nach und das willst du nicht. Wenn du dein eigener Herr sein willst, musst du deine eigene Stimme finden. Darum geht's. Sei also nur du selbst."

An Rezepten für Apfelkuchen mangelt es wahrhaftig nicht auf der Welt

Tenac auf der Suche nach seinem Meister ious D

look into my eyes and its easy to see one and one make two, two and one make three, it was destiny
ProfilPM
AntwortenZitierenTOP
post 15 Aug 2006, 16:36

6. Schein
*******

Punkte: 1338
seit: 18.10.2004

Erstmal Danke für die Hilfe.

Also, will auf einer html/php seite jeweils ein projekt anzeigen ... und unten soll weiter und zurück stehen, sodass ich rumspringen kann.

Also quasi nen php script, was mir die xml ausliest, innen array haut ... und ich dass dann irgendwie auslese.

Oder habt ihr ne bessere? Elegantere Möglichkeit?

Dieser Beitrag wurde von bnz: 15 Aug 2006, 16:36 bearbeitet
ProfilPM
AntwortenZitierenTOP
post 15 Aug 2006, 21:42

Alles Kapot!
*******

Punkte: 1459
seit: 08.04.2004

Hmm, würd ich jetzt auch so machen.

1. Funktion / Klasse baun, die die XML nimmt und daraus n 2 dimensionales Array baut
2. Funktion bzw PHP-Seite baun, die mir je nach lfd Nummer den entsprechenden HTML-Code für das Projekt ausgibt. Dabei wird das Array hergenommen.
Übergabe der lfd Nummer dann über die URL (zB.".../projekte.php?nr=1")

Den 1. Schritt kann man natürlich auch weglassen und gleich im Parser die HTML-Ausgabe regeln.

Dieser Beitrag wurde von Pummel: 15 Aug 2006, 21:44 bearbeitet
ProfilPM
AntwortenZitierenTOP
post 15 Aug 2006, 23:08

6. Schein
*******

Punkte: 1338
seit: 18.10.2004

das nächste problem .. ich habe von beidem nicht so richtig ahnung, aber naja, wird schon =)

ik werde den status mal hochladen und dann auf hilfe hoffen.

vielen dank bisher und speziell an pummel =)
ProfilPM
AntwortenZitierenTOP
post 16 Aug 2006, 00:43
avatar
Ivan
*********

Punkte: 3352
seit: 01.04.2006

Also ich kann dir nur empfehlen XSLT bzw. XSL für das Layout, XML für die Daten und PHP für die Funktionalität zu benutzen das ist einfach nur genial. W3C abgesegnet bzw. sogar empfohlen. Zusätzlich noch Hot Creation hat mir der Martschi geflüstert.

XSL ist gar nicht so kompliziert hat nur ein paar Funktionen die man kennen muss, bzw. kennen sollte. XSL ist eine funktionale Sprache, also nicht mit imperativen Sprachen verwechseln. XSL ist selber ein XML dokument. XSL macht im Prinzip nichts anderes als die Daten aus deinem für den XML Prozessor angegebenen XML File (Daten) zu nehmen und sie auf deine gwünschte neue XML FORM umzuwandeln also in deinem Fall in XHTML.

In der W3C schule findest du alles was wichtig ist. Auch alle funktionen.

Du solltest dir XML, XSL und XPATH angucken. XSL greift auf alle Sachen in XML mittels Xpath zu.

http://www.w3schools.com/


Also die XML Daten mit xsl auszulesen und zu transformieren ist bei weitem einfacher als die daten mit PHP auszulesen, zu versuchen in ein Array zu hauen, dieses dann kontrollieren zu wollen und auch noch auszugeben. Das ist nicht in der Sache des Erfinders denn damit vermischt du Layout und Funktionalität. Eigentlich ist PHP nur der Parser der Prozessor und der Überwacher das die Eingaben bzw. Anfragen a la (.../projekte.php?nr=1) korrekt sind. Php setzt je nach anfrage, mittels einer einfachen funktion eine Variable in das eingelesene XSL document (natürlich nur im Speicher, variable wird nicht in den XSL file auf der Platte geschrieben) und das weiß dann welches Template angezeigt werden soll.


Wichtig ist das in PHP 5.0 die xsl Prozessor Extension geladen ist.

Ich werde dir morgen mal das was du machen willst mit XSL, XML und PHP basteln wird nicht viel code haben. Ich werde das ganze auch für dich kommentieren dann siehst du vielleicht besser durch.


Dieser Beitrag wurde von No Name: 16 Aug 2006, 00:44 bearbeitet
ProfilPM
AntwortenZitierenTOP
post 16 Aug 2006, 00:51
avatar
don't do hiphop
********

Punkte: 1535
seit: 01.10.2003

blahblah.gif
fishing for compliments


p.s.: sorry für spam


--------------------
How up do high-knee

bild kann nicht angezeigt werden
ProfilPM
AntwortenZitierenTOP
post 16 Aug 2006, 01:15
avatar
Ivan
*********

Punkte: 3352
seit: 01.04.2006

Zitat(SidKennedy @ 16 Aug 2006, 00:51)
blahblah.gif
fishing for compliments
p.s.: sorry für spam
*


wirklich toll Sid. Anstatt sich an mir aufzuhängen sage ihm doch wie du es am besten machen würdest. Um so mehr verschiedene Ansätze es gibt um so besser ist es für ihn. Ich versuche nur zu helfen du bist kontraproduktiv.
ProfilPM
AntwortenZitierenTOP
post 16 Aug 2006, 09:40

6. Schein
*******

Punkte: 1338
seit: 18.10.2004

no name ... vielen dank - du bistn schatz =) freu mich
ProfilPM
AntwortenZitierenTOP
post 16 Aug 2006, 19:22
avatar
Ivan
*********

Punkte: 3352
seit: 01.04.2006

Jo So. Bin nicht eher dazugekommen.

Also hier kannst du dir das angucken was ich gemacht habe.
Einmal ne rohversion also ohne css stil bzw. gestaltung und einmal ne ordentlichere Version. Das habe ich gemacht damit du keine Angst vor xsl bekommst wenn du die bessere version siehst da die schon etwas größer ausfällt das aber eben daran liegt das da schon etwas mehr layout dabei ist und auch noch eine Abfrage, die die Links verändert, wenn man an das ende bzw. an den anfang kommt.

In beiden Versionen habe ich diesen XML file benutzt. Als bilder habe ich zwei andere reingemacht da ich deine ja nicht habe.

http://141.30.216.90/Home/test/projects.xml

Version 1:

Testen: http://141.30.216.90/Home/test/projects2.php

Code:
http://141.30.216.90/Home/test/projects2.xsl
http://141.30.216.90/Home/test/projects2.phps

Version 2:

Testen: http://141.30.216.90/Home/test/projects.php

Code:
http://141.30.216.90/Home/test/projects.xsl
http://141.30.216.90/Home/test/projects.phps


So zu dem XSL schreib ich dann später noch was, kannst dir ja erstmal angucken. Wie du hoffentlich siehst, ist der Code in Php schon ziemlich minimal, was ja auch das ziel der ganzen Sache war. Das coole daran ist, es ist XHTML 1.0 Strict validiert und du brauchst in xml nur ein neues Project anlegen und das wird dann natürlich auch angezeigt.

Dieser Beitrag wurde von No Name: 16 Aug 2006, 19:36 bearbeitet
ProfilPM
AntwortenZitierenTOP
post 16 Aug 2006, 20:49

6. Schein
*******

Punkte: 1338
seit: 18.10.2004

du bistn schatz!!!

super vielen lieben dank!!!

edit: wenn du mal in berlin bist, sag bescheid wink.gif // circuit breaker als act rulz!!

Dieser Beitrag wurde von bnz: 16 Aug 2006, 20:49 bearbeitet
ProfilPM
AntwortenZitierenTOP
1 Nutzer liest/lesen dieses Thema (1 Gäste)
0 Mitglieder: