php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.11.2004, 12:49  
Gast
 
Beiträge: n/a
Standard XML und Datenbank

Ich habe ein Verständnisproblem bzw. suche ein gutes Tutorial.

Ich möchte eine db-basierte Anwendung schreiben, in der es eine Tabelle "a_objects" gibt mit den Feldern
Code:
id
type
user_id
title
body
.

Im feld "body" stehen - je nach inhalt in "type" - die Daten zum entsprechenden Datensatz (dabei könnte es sich z. B. um Daten für email, project, date oder contact handeln). Jetzt weiß ich zwar, wie ich die einzelnen Datenfelder mit PHP verarbeite, aber ich hab keine Ahnung wie ich die XLM-Daten aus dem Feld "body" verarbeite. Alle XML-Tutorials, die ich bisher gelesen habe, gehen davon aus, daß ich eine .XML-Datei im Browser aufrufe. In diesem Fall habe ich ja aber keine Datei, sondern nur eine Variable im PHP-Code, die den ganzen XML-Block beinhaltet.

Hat einer ein paar Hilfestellungen? Am meisten würde mir ein Codefragment helfen, das
  • 1. XML-Daten aus der Datebank list
    2. Die Einzeldaten z. B. auf Variablen verteilt und
    3. sie an HTML/XML-Dokument übergibt
    4. Dieses Dokument mit einem XSL-Dokument im Browser aufruft
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 04.11.2004, 13:22  
Gast
 
Beiträge: n/a
Standard

sorry, aber was spielt das für ne rolle? ob du dein xml document als datei da liegen hast
und das xlst in ihr verknüpfst, oder ob du den xml output per echo in php ausgibst? ist
haargenau das gleiche und kein browser wird den unterschied merken.
  Mit Zitat antworten
Alt 04.11.2004, 13:46  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard Re: XML und Datenbank

Zitat:
Zitat von Klabauter
Alle XML-Tutorials, die ich bisher gelesen habe, gehen davon aus, daß ich eine .XML-Datei im Browser aufrufe.
Wie schafft man das? Das mit dem Suchmaschine bedienen musst Du nochmal üben.

PHP hat genug XML-Funktionen, v.a. in PHP 5. Bei PHP 5 würde ich v.a. auf simpleXML hinweisen.

http://de.php.net/simplexml
http://de.php.net/xml
http://de.php.net/dom

In PEAR könnte vielleicht auch die eine oder andere Klasse helfen, z.B. XML_Transformer oder XML_Tree.
http://pear.php.net/packages.php?cat...e=XML&pageID=2
__________________
mod = master of disaster
Waq ist offline   Mit Zitat antworten
Alt 05.11.2004, 10:20  
Gast
 
Beiträge: n/a
Standard

Danke für die Hilfe, aber mein Problem ist etwas anders, vielleicht habe ich mich nicht klar genug ausgedrückt. Ich habe bisher XML-Inhalte aus der Datenbank gelesen, geparsed und in ein HTML-Template übergeben - das funktioniert ganz gut.

Allerdings habe ich es bisher nicht geschafft, auf diese Weise ein XML-Dokument in Verbindung mit einem XSL-Sheet zu generieren, da der Browser an der Dateieindung XML erkennt, wie er die Daten interpretieren muß. Folgener Fehler kommt, wenn ich eine PHP-Datei einfach zu .XML umbenenne:

Code:
An dieser Stelle sind keine Leerzeichen zugelassen. Fehler beim Bearbeiten der Ressource .../test/xsltest.xml'. Zeile 1, Position 3 

<?
Wenn ich aber die Datei als xsltext.php aufrufe, interpretiert der Browser die Inhalte nicht als XML und gibt die Informationen unformatiert aus.

Meine Idee ist es also, mit php einen String $xml zu generieren, der dann über ein XSL dargestellt wird. Hat einer Tips oder nützliche Resourcen?
  Mit Zitat antworten
Alt 05.11.2004, 11:36  
Gast
 
Beiträge: n/a
Standard

gib nen header mit content-type text/xml oder application/xml oder sowas aus ..
ansonsten hab ich immer noch nicht ganz genau verstanden wo dein problem liegt,
wenn du das mit dem header ausprobierst hast und es immer noch nicht klappt.

die fehlermeldung ist eigentlich relativ eindeutig. wie bei php und header, session bzw
cookie: darf vor dem ausführen kein leerzeichen stehen .. und wie man an zeile1,
position 3 ! erkennt, ist da wohl was ..
  Mit Zitat antworten
Alt 05.11.2004, 12:05  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Der Beitrag wurde verschoben, wegen...
... Postings im falschen Forum.

moved to PHP - Profis

ich denke, dass dieser beitrag auch im profiforum stehen kann. vor allem, wenn man in relativ zu den anderen beiträgen hier sieht. :wink:
imported_Ben ist offline   Mit Zitat antworten
Alt 05.11.2004, 13:06  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Code:
An dieser Stelle sind keine Leerzeichen zugelassen. Fehler beim Bearbeiten der Ressource .../test/xsltest.xml'. Zeile 1, Position 3 

<?
Wenn Du das tust, wird die Datei vom Server nicht mehr als PHP verarbeitet und der Browser bekommt den PHP-Quelltext.
Und da steht dann ein "<?", wo der XML-Parser ein "<?xml" erwartet.
Du musst wie von stef beschrieben die Datei .php nennen und einen content-type-header schicken. Seine Interpretation der Fehlermeldung ist hingegen falsch.

Ausserdem sei darauf hingewiesen, dass PHP selbst eine XSLT-Unterstützung mitbringt, so dass Du dich nicht darauf verlassen musst, dass der Browser es tut. Ich bezweifle, dass Client-Side-XSLT sehr Suchmaschinenfreundlich ist...
__________________
mod = master of disaster
Waq ist offline   Mit Zitat antworten
Alt 05.11.2004, 14:42  
Gast
 
Beiträge: n/a
Standard

Zitat:
Ausserdem sei darauf hingewiesen, dass PHP selbst eine XSLT-Unterstützung mitbringt, so dass Du dich nicht darauf verlassen musst, dass der Browser es tut.
Scheint so:
Programm: xsltest.php
PHP-Code:
<?php
echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";
echo 
"<?xml-stylesheet type=\"text/xsl\" href=\"contact2.xsl\" ?>";
include(
"../dbopen.php");


$result mysql_query("select body from xmltest where id=3");
while(
$row=mysql_fetch_array($result))
    
$xml $row['body'];

include (
"xsltest.tpl");
?>
liefert:
PHP-Code:
Meier Andreas Eierwiese14 
... also unformatierten Text. Wenn ich den XML-Header außerhalb des <? ?>-Tags platziere bringt der Server einen
PHP-Code:
Parse errorparse errorunexpected T_STRING in .../test/xsltest.php on line 1 
Wenn ich das Programm als textxsl.xml mit PHP-Tags aufbaue, ergibt sich das Fehlerbild aus meinem vorigen Post.

Programm xsltest.tpl
PHP-Code:
<? echo $xml?>
Dazu läßt sich sagen, daß ich auch schon versucht habe, hier einen XML-Header vozuschalten. Selbst wenn man einen XML Header vorschaltet und die Datei zu xsltest.xml umgenennt, kommt folgender Fehler:
PHP-Code:
Parse errorparse errorunexpected T_STRING in .../test/xsltest.xml on line 1 
Scheinbar kann man demnach die Kombination PHP/SQL/XSL nicht nutzen. Sehr schade, weil ich die Ausgabe von XML-Daten über XSL sehr schick finde, aber XML-Daten in Files ab einer gewissen Größe der Anwendung nicht mehr handelbar sind ...
  Mit Zitat antworten
Alt 05.11.2004, 16:31  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Klabauter
Scheinbar kann man demnach die Kombination PHP/SQL/XSL nicht nutzen.
Das wäre der Punkt, mal ober short_open_tag = Off nachzudenken.

Zitat:
Sehr schade, weil ich die Ausgabe von XML-Daten über XSL sehr schick finde,
"Der Wurm muß dem Fisch schmecken und nicht dem Angler!"
  Mit Zitat antworten
Alt 05.11.2004, 19:43  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Zitat:
Zitat von Klabauter
Scheinbar kann man demnach die Kombination PHP/SQL/XSL nicht nutzen.
Das ist einfach Unsinn. Es funktioniert nie, weil Du immer irgendwo Fehler machst.

Server-Side XSLT hast Du z.B. gar nicht gesehen, dass passiert nicht automatisch, dafür muss man die XSLT-Funktionen von PHP selbst aufrufen.

Deine unformatierte Datei deutet für mich auf die Verwendung einen mehr oder weniger leeren XSL-Stylesheets hin, denn so sieht das Ergebnis dann aus.
__________________
mod = master of disaster
Waq ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Array Inhalte in eine Datenbank über tragen Munsi1 PHP Tipps 2008 5 11.04.2008 13:28
Direkten Zugriff auf Datenbank verhindern heyho PHP Tipps 2008 7 07.02.2008 11:41
datenbank auf andere kopieren geht nicht! Kevin Datenbanken 1 18.08.2007 23:20
Sql Datenbank durchsuchen und vergleichen Teambyte PHP Tipps 2006 5 14.09.2006 11:11
Mehrere Anwendungen eine Datenbank... Datenbanken 5 15.08.2005 11:22
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:33
[Erledigt] mysql datenbank anlegen...aber WIE??? PHP Tipps 2005-2 0 05.08.2005 19:33
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:32
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29
Bilder aus der Datenbank Skazi Datenbanken 2 09.02.2005 13:42
Eintrag in Datenbank mittels Formular? Datenbanken 5 16.12.2004 17:36
[Erledigt] MySQL findet Datenbank nicht Datenbanken 10 21.10.2004 09:14

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
an dieser stelle sind keine leerzeichen zugelassen. fehler beim bearbeiten der ressource, xml an dieser stelle sind keine leerzeichen zugelassen, an dieser stelle sind keine leerzeichen zugelassen, an dieser stelle sind keine leerzeichen erlaubt javascirpt xsl, xml datenbank, dieser stelle sind keine leerzeichen zugelassen. fehler beim bearbeiten der ressource, leerzeichen oder \?\ erwartet. fehler beim bearbeiten der ressource, xml aus datenbank erstellen, xml fehler an dieser stelle sind keine leerzeichen zugelassen, \an dieser stelle sind keine leerzeichen zugelassen. fehler beim bearbeiten der ressource\, xml aus datenbank php, php datenbank xml output, php xml mit datanbank vergleichen, xml an diese stelle ist kein leerzeichen, an dieser stelle sind keine leerzeichen zugelassen. xml, xml erkennt keine leerzeichen, an dieser stelle sind keine leerzeichen zugelassen., php datenbank in xml, xml keine lehrzeichen, leerzeile vermeiden php simplexml

Alle Zeitangaben in WEZ +1. Es ist jetzt 05:34 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.