XML parsen mit dem Apache Server

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

XML parsen mit dem Apache Server

Postby Apache_Server » 06. August 2003 15:28

Hallo Leute,

was muss ich einrichten bzw. konfigurieren, damit der Apache Server XML-Dateien (in dem htdocs-Verzeichnis) parst, damit der, der auf die Seite zugreift nicht die XML-Datei, sondern die geparste HTML-Datei bekommt? Ich möchte gerne das die XML-Datei mit Hilfe von XLST in HTML geparst wird!

MfG
YvesC_1981
Apache_Server
 

mod_xslt fehlt beim apache.....

Postby nemesis » 07. August 2003 05:48

öhm....

der Apache Server an sich gibt nur Datein durch Aufruf einer Url aus, ggf. bei SSI php und cgi, schickt er sie noch durch einen Interpreter.

http://xml.apache.org/

Weiß zwar nicht woher du die XLST Datei hast... aber Apache kann ohne eines dieser Zusatz Projekte nichts damit anfangen :)

Xalan - XSLT stylesheet processors, in Java and C++

da man leider Java nicht frei weiterverbreiten und in eigene Projekte Packen darf, wird es so schnell leider keinen Xampp geben, ansonsten, ein Apache mit all den möglichen Erweiterungen würde sehr schnell das Packet sprengen, kann dich jetzt leider nur darauf verweißen, daste es per Hand nachinstallierst.

http://xml.apache.org/xalan-c/index.html

ist die c++ version davon, download link und dokumentation ist dabei :)
Wenn du einen guten Grund findest, und das Packet nicht zu groß ist/wird, ließe sich vielleicht über eine Aufnahme in ein zukünftiges Xampp reden.


hm... habs mal kurz überflogen (5minuten) die normalen binär packete von Xalan sind cmd line (Kommandozeilen Programme) das heißt man müsste jedesmal das Programm aufrufen.

zu einem mod_XSLT: (dauerte länger als 5 minuten ;))

http://xml.apache.org/xalan-c/samples.h ... modulexslt
This sample must be built with the Apache Web server, and the Xalan-C++ distribution files do not include a binary for ApacheModuleXSLT. Assuming you have installed the Apache server on your platform, you can use Visual C++ on Windows to build ApacheModuleXSLT.dll, or the Makefile on UNIX to build xslt_module (with the appropriate library suffix).


http://xml.apache.org/xalan-c/readme.html#win32

To build Xalan-C++ on Windows, you need Xerces-C++ and MS Visual C++ 6.0 installed with Service Pack 3 for Visual C++ and Visual Studio. You should also apply the bug fixes for the C++ standard library that shipped with Visual C++ 6.0. These fixes are available from the Dinkumware site:


Windows Source für Xerces-C++ :
http://xml.apache.org/dist/xerces-c/sta ... _2_3_0.zip
27-May-2003 13:04 9.8M Xerces-C++ 2.3 Source for Windows
naja, und es werden ja "nur" die header gebraucht....

http://sourceforge.net/project/showfile ... p_id=47254
zumindest für linux gäbe es ein mod_xslt schon....
und die homepage dafür ist http://www.dunkel.org/mod-xslt/
nicht wie angegeben http://www.mod-xslt.com/mod-xslt/
Die Seite funktioniert anscheinend noch nicht :) oder er hatte noch keine Zeit eine zu machen.

<Location /xslt>
AddHandler mod_xslt .html
AddHandler mod_xslt .txt
</Location>

This <Location> element instructs the module to respond to requests for xxx.html and xxx.txt files in the in the xslt subdirectory (under the document root; see next item) by applying the xxx.xsl stylesheet to xxx.xml (both in that directory) and returning the transformation result to the browser.

For example, a request for foo.html instructs the module to apply foo.xsl to foo.xml and return the result.

auf gut deutsch gesagt, der User gibt foo.html im browser ein, und daraufhin wird foo.xml und foo.xlst geparst, und als schöne html Seite ausgeben, das was du wohl willst. Muss dich vorerst damit enttäuschen das von der Apache Foundation bisher kein mod_xslt rausgebracht wurde, und wohl auch nicht so schnell passieren wird...
Habs zumindest mal in einem IRC Channel dazu angesprochen.

Wer weiß Kai/Kay was haltets ihr von der netten Möglichkeit Xampp damit zu bündeln?

Apache Foundation war/ist anscheinend dazu noch nicht in der Lage das mitzuliefern, oder hats versäumt, was auch immer, die möglichkeit dazu besteht...

Und Yves_1981 kannst du vielleicht ein paar Beispiel Seiten nenne, damit es einen legitmieren Grund hat, außer das es das mod so noch nicht gibt, um ein paar Beispiele, für die Vorteile von XSLT und XML mit ins eventuelle Xampp Packet dann zu packen, das sich interessierte User vielleicht auch etwas damit beschäftigen, und damit "rumspielen" können ;)

Gruss, nemesis
Ubuntu 8.04 | SMP P3 1.4 GHz | 6 GByte RegECC | 74 GByte Seagate 15k5 system | 3Ware 9550SXU-4LP with 4x 500 GByte Seagate ES2 Raid 10 data | StoreCase DE400 | PX-230A | Intel Pro/1000MT Dual PCI-X
User avatar
nemesis
AF Moderator
 
Posts: 999
Joined: 29. December 2002 13:14
Location: Ingolstadt

Vorteile von XML und XSLT

Postby Apache_Server » 07. August 2003 08:40

Hallo nemesis,

danke für deine Mühen. So weit war ich fast, aber ich dachte vielleicht gib es so etwas schon fertig. Ich werde jetzt mal versuchen das Modul kompiliert zu bekommen und auch so wie du beschrieben hast einzubinden.

Der Vorteil von XML ist, dass du beliebig Daten sortiert oder einfach nur geordnet in einer Datei abgespeichert werden kann. Die Syntax ist aus HTML übernommen und ähnelt ihr sehr, wer also schonmal in HTML programmiert hat, wird mit XML eigentlich sehr gut zurecht kommen. Für jede XML-Datei kannst du dann eine DTD-Datei (document type defintion -> Dokumenttyp-Definition) erstellen. Dort kannst du alle möglichen Elemente einer XML-Datei definieren und sagen z.B. wieviel ein Element an Dateninformationen bekommt.
So und jetzt noch zu XSLT: XSLT ist eine Art Skriptsprache, mit der du die Elemente aus der Datei definieren kannst, d.h. was mit jedem Element passieren kann. Du kannst theoretisch meiner Meinung nach ein HTML nachprogrammieren mit eigenen Definitionen. XML ist ja eigentlich wie HTML ein Strukturbaum aus vielen Objekten. In XSLT kannst du jedem Element dann eine HTML-Zuweisung machen.

Ich kann XML gut gebrauchen um eigene Daten strukturiert abspeichern zu können und in XSLT die Elemente zur HTML-Konvertierung zu definieren.
Es ist eigentlich wie PHP, nur das in PHP die C++-Syntax zum Vorschein kommt, ebenfalls HTML rausgeschmissen wird und du da natürlich viel mehr Funktionen (z.B. Datenbankkommunikation, Mailfunktionen, usw.) zu Verfügung stehen.

Hier ein Link wo ihr sehen könnt, wie XML, DTD und XSLT zusammen arbeiten und aussehen: http://selfhtml.teamone.de/xml/darstellung/xsltbeispiele.htm (Beispiel 4 find ich persönlich am aussagekräftigsten!)
Ich würde mich sehr freuen, wenn ein Parser in XAMPP mitgeliefert werden würde.

MfG
YvesC_1981
Apache_Server
 

XML-Parser in XAMPP einbinden

Postby Apache_Server » 07. August 2003 15:00

Hallo Leute,

habe es geschafft, nun kann ich über den Apache Server XML-Dateien parsen. Ich habe die ApacheModuleXSLT mit VC6 kompiliert und so wie es bei http://xml.apache.org/xalan-c/samples.html#apachemodulexslt beschrieben ist in Apache eingebunden. Danach hat es geklappt. Das kompilieren ist ein wenig aufwendig, aber man lernt halt immer etwas dazu. Zum Thema "Apache mit all den möglichen Erweiterungen würde sehr schnell das Packet sprengen": die DLL, die dabei benötigt wird ist 20 kB groß und es müssen 6 Zeilen in die httpd.conf von Apache eingetragen werden. Ansonsten war es das schon.

Danke nochmal, nemesis!

MfG
YvesC_1981
Apache_Server
 

Postby nemesis » 07. August 2003 18:18

nichts, oder fast nichts zu danken ;)

hab mir mal die beispiele angeschaut, und siehe da, Mozilla Firebird (aka Phoenix) und sogar M$ Internet Explorer 6.0 kann die xml Seiten ohne Probleme darstellen: http://selfhtml.teamone.de/xml/darstell ... lossar.xml

Zumindest sieht das besser aus, als die fertigen html Seiten was als Beispiel angeben wurde.

Über das mod_xslt kannst da auch xhtml ausgaben erzeugen?
Ansonsten hat mich das beispiel nicht sonderlich überzeugt.
Und die 20kbyte tun wirklich nicht weh, müssen sich nur noch Kai (lampp) und Kay (wampp) darüber einig sein (sobald sie sich das hier mal durchlesen ;) ) ob sie sich den mehraufwand antun wollen :)

Zumindest Kai hat genauso wie ich nur ISDN, bei Kay bin ich mir nicht sicher :)

Ansonsten, wenn du nichts dagegen hast, könntest ja dein mod_xslt hier anbieten, wegen dem phpmyadmin dürfte zumindest eh bald eine neue Xampp für windows version rauskommen, das man es da vielleicht gleich mal integriert. Solange Kay es nicht aus Sicherheitsgründen oder anderen Erwägungen lieber selber kompilieren will.

Falls größere Probs bei dir aufgetreten sind, die nicht auf den Apache Seiten standen, schreibs bitte hier mit rein.

Xampp wird normalerweise allgemein nur bei Fehlern im Packet, oder meistens bei Apache/MySQL updates aktualisiert.
Ubuntu 8.04 | SMP P3 1.4 GHz | 6 GByte RegECC | 74 GByte Seagate 15k5 system | 3Ware 9550SXU-4LP with 4x 500 GByte Seagate ES2 Raid 10 data | StoreCase DE400 | PX-230A | Intel Pro/1000MT Dual PCI-X
User avatar
nemesis
AF Moderator
 
Posts: 999
Joined: 29. December 2002 13:14
Location: Ingolstadt

mod_xslt kompilieren und einbinden

Postby Apache_Server » 08. August 2003 08:39

Hallo nemesis,

also ich musste an dem Projekt noch etwas rumstricken, bis es funktionierte: die Include-Pfade richtig setzen, aber das lag daran das ich die apache sourcen da hatte, wo ich es wollte und nicht das projekt, allerdings musste ich danach noch die lib's setzen, die die dll bzw. das module braucht: ApacheCore und Xalan.
etwas hab ich noch vergessen: das Module benötigt noch Xalan.dll und Xalan.dll braucht Xerces.dll. die beiden dll's sind zusammen 4MB groß, es werden auch nur die beiden dll's benötigt. nicht der rest, der bei xerces und xalan noch mitgeliefert wird. ich hab die beiden dll's dorthin gepackt, wo apachecore.dll ist, also in das apache-verzeichnis. also bei mir bekomm ich die xml-dateien in opera (7.03) nicht richtig angezeigt. nur der Internet Explorer kann mir die richtig anzeigen. netscape (7.02) konnte es auch nicht, aber jetzt irgendwie schon, keine ahnung warum. aber wenn ich den apache bzw. das module es parsen lasse, bekomme ich eine anständige html-datei und bekomme es auch schön angezeigt. Wie das HTML aussieht, das bestimmt man ja selber durch die xslt-datei.
Kai/Kay müssen es sich halt überlegen, das module zu integrieren.

MfG
YvesC_1981
Apache_Server
 


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 16 guests