xml - Abspeichern

Guten Abend,
ich bin mir nicht sicher, ob es hier rein past, falls nicht, einfach verschieben :slight_smile:

Was es bis jetzt kann:
-eine xml mithilfe von xlst in einem browser verändert darstellen
-mit nem parser kann man diese veränderung abspeichern
Mein Problem:

  • ich möchte nicht um die neue xml-datei einen parser benutzen müssen.
    D.h. ich möchte gerne über gewisse bedingungen immer wieder die neu entstandende xml-datei weiter bearbeiten.
    Sozusagen eine rekursion. Zum schluss soll es möglich sein, den letzten stand abzuspeichern. Dies soll laut w3cschool kann man die veränderten xml-dateien die angezeigt werden mit asp abspeichern (falls ich es richtig verstanden habe). Ich kann mich damit aber nicht unbedingt anfreunden, weswegen ich gerne eine alternative zum abspeichern hätte.

Zusammengefasst:
ich möchte eine xml-datei welche mit xlst abgeändert dargestellt wurde abspeichern und das nicht mit asp lösen.

  1. Wie komme ich an den abgeänderten content(das, was ich wieder in eine xml datei schreiben möchte)?
  2. Wie speichere ich diese am Besten ab.
    Falls jemand eine Idee, Lösungsvorschlag usw. hat würde ich mich drüber freuen. Ich möchte keine fertige Lösung, sondern einen gedankenanstoß, wie ich es client oder serverseitig abspeichern kann.
    liebe Grüße Phibedy

Willkommen im Forum.

Beispielsweise mit PHPs XSLTProcessor: PHP: XSL - Manual

Danke für die schnelle Antwort, jedoch müsste ich es ohne externe software lösen. D.h. jeder standard php-server sollte es ausführen können.

XML-Verarbeitung würde ich schon als Standard bezeichnen, was PHP angeht. Was ist denn für dich Standard?

PHP: Requirements - Manual
Ist dies keine erweiterung zum „normalen“ php? Was ich damit meine:
Ich möchte dafür keine libs. einbinden müssen wie z.B. in java oder c++.
Es soll mit dem php server, welchen ich über xamp starte genauso laufen, wie über den php server von meinem linux-server.
Also ohne irgendwelche „erweiterungen“ falls es diese überhaupt gibt. Ist php immer gleich php?
Also abgesehen, dass es dort verschiedene versionen 4;5 gibt?

Ich habe mit php und anderen websprachen noch nicht sonderlich viel gemacht, deswegen entschuldigt mein unvermögen :slight_smile:

PHP ist insgesamt sehr modular aufgebaut. Es kann – übertrieben gesagt – alles und nichts enthalten sein.

Extensions/Module, die auf diversen Rechnern, auf die ich gerade Zugriff habe, jeweils vorhanden sind:

Uberspace (PHP 5.4.4):

bcmath calendar Core ctype curl date dom ereg exif fileinfo filter gd gettext hash iconv imap intl json libxml mbstring mcrypt mysql mysqli mysqlnd openssl pcntl pcre PDO pdo_mysql pdo_sqlite Phar posix pspell Reflection session SimpleXML soap sockets SPL sqlite3 standard tokenizer xml xmlreader xmlrpc xmlwriter xsl zip zlib

Simpler Space bei 1&1 (PHP 5.2.17):

bcmath bz2 calendar cgi-fcgi ctype curl date dba dbase dom exif filter ftp gd gettext hash iconv idn imap json libxml mbstring mcrypt mhash mysql mysqli openssl pcre PDO pdo_mysql pdo_sqlite posix Reflection session shmop SimpleXML soap SPL SQLite standard tidy tokenizer wddx xml xmlreader xmlwriter xsl zip zlib

Lokal bei mir (Ubuntu 12.04, PHP 5.3.10):

apc bcmath bz2 calendar Core ctype curl date dba dom ereg exif fileinfo filter ftp gd gettext hash iconv intl json libxml mbstring mcrypt mhash mysql mysqli openssl pcntl pcre PDO pdo_mysql pdo_sqlite Phar posix readline Reflection session shmop SimpleXML soap sockets SPL sqlite3 standard sysvmsg sysvsem sysvshm tokenizer vld wddx xdebug xml xmlreader xmlwriter xsl zip zlib

Falls jemand mitmachen möchte:

In der Konsole (hier für Linux):

$ php -m | tr "\\n" " " $ php -v

Oder per PHP-Script:

[php]$data = get_loaded_extensions();
natcasesort($data);
echo implode(’ ', $data);

echo PHP_VERSION;[/php]

Welche davon sind überall ein Quasi-Standard? Tja… Ich würde xml und xsl erfahrungsgemäß dazuzählen. Garantieren, dass die Module bei einem beliebigen Hoster aktiviert sind, kann ich aber natürlich nicht. Das kann ich aber auch für mysql oder pdo oder gd oder pcre nicht.

Die Dokumentation sagt ja, dass das xml-Modul beim Kompilieren explizit deaktiviert werden muss (ob das auch für xsl gilt, weiß ich nicht). Ich würde jedenfalls nach bestem Wissen davon ausgehen, dass du die verlinkte Klasse „meist“ nutzen kannst.

Mit Alternativen sieht es ohnehin mau aus und rein praktisch argumentiert: Du willst XSL-Transformationen durchführen… Dazu braucht es nun mal die entsprechende Technologie. Das ist bei Datenbanken ja auch nicht groß anders.

Danke für die Erklärung :slight_smile:
Auf meinem Server läuft:
ich weiss zwar nicht, welches ich damals installiert habe, aber er sollte das transformieren unterstützen:

apache2handler bcmath bz2 calendar Core ctype date dba dom ereg exif fileinfo filter ftp gd gettext hash iconv imap json libxml mbstring mcrypt mhash mysql mysqli openssl pcre PDO pdo_mysql Phar posix Reflection session shmop SimpleXML soap sockets SPL standard suhosin sysvmsg sysvsem sysvshm tokenizer wddx xml xmlreader xmlwriter zip zlib5.3.3-7+squeeze13

Bei Xampp ist das dabei:

apache2handler bcmath bz2 calendar Core ctype curl date dom ereg exif filter ftp gd gettext hash iconv json libxml mbstring mcrypt mhash mysql mysqli mysqlnd odbc pcre PDO pdo_mysql pdo_sqlite Phar Reflection session SimpleXML soap sockets SPL sqlite3 standard tokenizer wddx xml xmlreader xmlrpc xmlwriter xsl zip zlib5.4.7

Meines erachtens sollte es also unter meinen „standard“ fallen?

Da habe ich mich nun also als Serverbesitzer, welcher eigentlich nicht sonderlich viel Ahung von dem Zeug hatte, was er mal installiert hat, geoutet :smiley:
Naja, er war bis vor kurzem auch nun für java-server und die Baukästen aus wordpress und burning board in benutzung :slight_smile:
liebe Grüße und danke für die Hilfe

ps: wie fügt man code ein?

Bei der Auflistung für deinen Server ist xsl jetzt nicht dabei… Hm, ich weiß nicht genau, wie das einzuschätzen ist. Sind das Windows-Systeme? Kannst du einfach mal versuchen, diesen Code

[php]<?php

error_reporting(-1);
ini_set(‚display_errors‘, 1);

$obj = new XSLTProcessor();[/php]

auszuführen? Wenn keine Fehlermeldung ausgegeben wird, klappt es.

Code einfügen: Mit den Tags [noparse][php][/php][html][/html][/noparse].

Das ist mir auch aufgefallen als ich die daten auf den server geladen habe. War aber recht leicht zu beheben, da es nur ein Befehl und dieser dank deiner vorherigen Erklärung leicht zu finden war :slight_smile:

<?xml version="1.0"?>
<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet version=„1.0“
xmlns:xsl=„http://www.w3.org/1999/XSL/Transform“>

<xsl:template match=„/“>

My Points

x y

</xsl:stylesheet>

Edit: gelöst :slight_smile:
Habe den code editiert.
liebe Grüße

Edit: Fehler gefunden :slight_smile:
liebe Grüße