Zurück   Flashforum > Flash und Server > PHP und MySQL

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-02-2011, 17:58   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2009
Beiträge: 68
PHP: xml einladen und 1:1 ausgeben?

Hallo,

ich möchte per php eine xml Datei einladen und dann ausgeben. Soweit geht das bereits, bloß ist die Formatierung der xml Ausgabe dann ganz anders.

Ich möchte aber, das die xml Datei 1:1 ausgegeben wird, also mit "<Knotenpunkt>Inhalt</Knotenpunkt>"

Wie kann man das hinbekommen?

Hintergrund: Es wird ein Passwortschutz davor geschaltet und die direkte Ansicht der xml Datei wird per htaccess gesperrt. Bloß brauche ich dann halt wieder 1:1 den xml Inhalt, damit Flash wie gewohnt damit arbeiten kann.

Hoffe ihr könnt mir da weiterhelfen!
maccoX ist offline   Mit Zitat antworten
Alt 27-02-2011, 12:01   #2 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
??? versteh dich nicht ganz
was meinst du mit 1:1 ausgeben?
PHP-Code:
var xml:XML //...
var tf:TextField //...

tf.text xml.toXMLString(); 
- sowas?
- wozu willst du die Datei überhaupt ausgeben? normalerweise werden XML-Dateien nur ausgelesen und die enthaltenen Daten weiterverwendet.
- wie sieht dein AS-Code zum laden der PHP-Datei aus?
- hast du in PHP den Content-Type auf xml-gesetzt oder liefert der noch html aus?
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist offline   Mit Zitat antworten
Alt 27-02-2011, 15:46   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2009
Beiträge: 68
Hm, hab ich wohl etwas unklar ausgedrückt ...

Ich hab eine xml Datei, diese wird zur Zeit direkt von Flash importiert.
Den Zugriff auf die xml hab ich jetzt aber per htaccess gesperrt damit die niemand einfach so einsehen kann. Somit kann auch Flash nicht mehr drauf zugreifen. PHP Dateien können es weiterhin.

Jetzt möchte ich die xml Datei von einer php einlesen und dann per print so ausgeben, wie wenn ich direkt die xml aufrufen würde. Davor soll noch ein Passwortschutz (der ist aber nicht das Problem). Meine Flash Datei ruft dann also die php Datei auf, erhält den richtigen xml Code und erstellt mir eine XML Variable.

Beispiel für die xml:
PHP-Code:
<Staedte>
  <
Stadt>
   <
ID>1</ID>
   <
Name>Brisbane</Name>
  </
Stadt>
  <
Stadt>
   <
ID>2</ID>
   <
Name>Rhede</Name>
  </
Stadt>
</
Staedte
Beispiel für die PHP:
PHP-Code:
<?php
$Staedte 
simplexml_load_file("Staedte.xml");
var_dump($Staedte);
?>
Das Problem ist aber, das ich bei der PHP eben nicht genau den xml Inhalt rausbekomme - zumindest nicht im diesem klassischen XML Format mit den "<>". Ich will aber 1:1 das gleiche Ausgabeergebniss, ob ich jetzt die xml oder php aufrufe.

Geändert von maccoX (27-02-2011 um 15:48 Uhr)
maccoX ist offline   Mit Zitat antworten
Alt 28-02-2011, 08:45   #4 (permalink)
Neuer Benutzer
 
Benutzerbild von webxvideo
 
Registriert seit: Nov 2003
Ort: berlin
Beiträge: 883
Wenn Du die XML-Datei einfach nur komplett als String ausgeben willst, brauchst Du keine XML-Methhoden.
Es reicht:
PHP-Code:
<?php
readfile
("Staedte.xml");
?>
webxvideo ist offline   Mit Zitat antworten
Alt 28-02-2011, 12:52   #5 (permalink)
Neuer User
 
Registriert seit: Jan 2009
Beiträge: 68
Funktioniert auch nicht.

Ich bekomme dann nur den Inhalt der Knotenpunkte alle in einer Reihe und durchgestrichen
maccoX ist offline   Mit Zitat antworten
Alt 28-02-2011, 13:02   #6 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
versuch mal
PHP-Code:
<?php 
echo '<pre>'.htmlentities file_get_contents("Staedte.xml") ).'</pre>'
?>
__________________
(\__/)
(='.'=)
(")_(")

Geändert von Nightflyer (28-02-2011 um 13:04 Uhr)
Nightflyer ist offline   Mit Zitat antworten
Alt 28-02-2011, 13:17   #7 (permalink)
Neuer Benutzer
 
Benutzerbild von webxvideo
 
Registriert seit: Nov 2003
Ort: berlin
Beiträge: 883
So ist es dann aber kein XML mehr, es sieht dann nur noch so aus.
Wenn Du die XML-Datei im Browser darstellen willst, probier mal das:
PHP-Code:
<?php
header 
("content-type: text/xml");
readfile("Staedte.xml");
?>
So geht's natürlich auch:
PHP-Code:
<?php
header 
("content-type: text/xml");
echo 
file_get_contents("Staedte.xml");
?>

Geändert von webxvideo (28-02-2011 um 13:20 Uhr)
webxvideo ist offline   Mit Zitat antworten
Alt 28-02-2011, 13:22   #8 (permalink)
Neuer User
 
Registriert seit: Jan 2009
Beiträge: 68
Danke!

@Nightflyer: Sah verdächtig richtig aus, bloß wollte mein Flash das leider nicht schlucken

@webxvideo: Danke, so gehts jetzt!
maccoX ist offline   Mit Zitat antworten
Alt 28-02-2011, 13:30   #9 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Warum muss das aber eine PHP parsen? Lad dann die XML doch einfach direkt..
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 28-02-2011, 13:33   #10 (permalink)
Neuer Benutzer
 
Benutzerbild von webxvideo
 
Registriert seit: Nov 2003
Ort: berlin
Beiträge: 883
@Nightflyer
so kann man dann halt über PHP steuern wer welche XML-Datei zu sehen/laden bekommt.
webxvideo ist offline   Mit Zitat antworten
Alt 28-02-2011, 13:33   #11 (permalink)
Neuer User
 
Registriert seit: Jan 2009
Beiträge: 68
Währe es eigentlich auch möglich, nur einige Knotenpunkte auszulesen und so als richtige xml auszugeben?

Also aus der echten xml
PHP-Code:
<Staedte>
  <
Stadt>
   <
ID>1</ID>
   <
Name>Brisbane</Name>
   <
Land>Australien</Land>
  </
Stadt>
  <
Stadt>
   <
ID>2</ID>
   <
Name>Rhede</Name>
   <
Land>Deutschland</Land>
  </
Stadt>
  <
Stadt>
   <
ID>3</ID>
   <
Name>Berlin</Name>
   <
Land>Deutschland</Land>
  </
Stadt>
</
Staedte
... z.B. nur die Städte anzeigen die in Deutschland liegen - also PHP xml Ausgabe:
PHP-Code:
<Staedte>
  <
Stadt>
   <
ID>2</ID>
   <
Name>Rhede</Name>
   <
Land>Deutschland</Land>
  </
Stadt>
  <
Stadt>
   <
ID>3</ID>
   <
Name>Berlin</Name>
   <
Land>Deutschland</Land>
  </
Stadt>
</
Staedte
Normalerweise mach ich das in Flash, aber wenn bereits nur die entsprechenden Stellen ausgegeben werden erhöht das die Sicherheit.

Aber ich vermute mal das wird so ohne weiteres nicht gehen, da wenn php die Datei als xml bearbeitet ja die "echte" xml Formatierung wieder verloren geht!?

Geändert von maccoX (28-02-2011 um 13:36 Uhr)
maccoX ist offline   Mit Zitat antworten
Alt 28-02-2011, 13:38   #12 (permalink)
Neuer Benutzer
 
Benutzerbild von webxvideo
 
Registriert seit: Nov 2003
Ort: berlin
Beiträge: 883
Klar, in dem Fall müsstest Du die XML-Datei doch parsen, nicht passende Knoten löschen und dann den Rest ausgeben.
webxvideo ist offline   Mit Zitat antworten
Alt 28-02-2011, 14:38   #13 (permalink)
Neuer User
 
Registriert seit: Jan 2009
Beiträge: 68
Hab mir da was zusammengebastelt mit Codefetzen die ich so gefunden hab, will aber leider nicht so richtig:

PHP-Code:
<?php  

header 
("content-type: text/xml"); 
$doc = new DOMDocument;  
$doc->load('Staedte.xml');  
$thedocument $doc->documentElement;  

$list $thedocument->getElementsByTagName('Stadt');  

$nodeToRemove null
foreach (
$list as $domElement){   
   
$attrValue $domElement->getAttribute('Land');   
   if (
$attrValue != 'Deutschland') {     
      
$nodeToRemove $domElement
   } 
}  

if (
$nodeToRemove != null
$thedocument->removeChild($nodeToRemove);  

echo 
$doc->saveXML();  
?>
Allerdings wird mir damit nur die letzte Stadt gelöscht, alle anderen die nicht passen bleiben erhalten. Ich vermute das ist weil $nodeToRemove innerhalb der if Abfrage immer wieder überschreiben wird. Aber wie soll ich das sonst lösen? WEil ich brauch ja dann x Löschbefehle.

Ausserdem steht jetzt in der ersten Zeile meiner Datei "<?xml version="1.0" ?>" - warum auch immer. Kann man das irgendwie entfernen?


EDIT: scheinbar wird immer die letzte Stadt gelöscht, egal in welchem Land die liegt

Geändert von maccoX (28-02-2011 um 14:48 Uhr)
maccoX ist offline   Mit Zitat antworten
Alt 02-03-2011, 09:17   #14 (permalink)
Neuer User
 
Registriert seit: Jan 2009
Beiträge: 68
Also gut, hab das jetzt soweit hinbekommen.

Ausgehend aus der Staedte.xml möchte ich jetzt aber auch die Möglichkeit, eine ID zu übergeben und mir wird der dazu passende Stadtname in eine Variable gelegt.

Soweit bin ich bisher, aber der Städtenamen wird nicht abgespeichert. Die Query Funktion sollte aber den richtigen <stadt> Bereich rausfischen, nur komme ich scheinbar nicht an den Städtenamen ran. In diesem Fall währe das Rhede (id 2).

PHP-Code:
<?php 

$id 
"2";

$doc = new DOMDocument
$doc->load("Staedte.xml"); 
$xp = new DOMXPath($doc); 
$staedte $doc->documentElement
             
$stadt $xp->query('stadt[id == "'.$id.'"]'); 

foreach (
$stadt as $inhalt){   
   
$name $inhalt->name->nodeValue;
   print 
$name;  


?>
Probier mich da schon seit gestern Abend komm aber einfach nicht dahinter - irgendwas mach ich scheinbar total falsch

Geändert von maccoX (02-03-2011 um 09:20 Uhr)
maccoX ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

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

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
XML in verschiedene Textfelder einladen und ausgeben lolrene Flash mit XML und Webservices 2 16-03-2008 09:45
txt einladen Jochi ActionScript 1 2 12-12-2004 01:06
einladen von TXT siflu Flash MX 13 01-01-2003 00:20
txt einladen siflu Flash MX 2 31-10-2002 18:23
Textdatei in datei einladen und ausgeben Julian Graw Flash und Datenbanken 4 25-04-2002 19:32


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:25 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele