XML mittels PHP auslesen

Psychodelics

Erfahrenes Mitglied
Hallo alle zusammen,

Ich will einen Algorithmus erstellen, der mir eine XML-Datei ausliest.

Ich will, dass das nächste Element automatisch ermittelt wird. Sprich: Ob das nächste Element eine Selection ist oder Text oder ein Umbruch usw.

Dementsprechend soll die Ausgabe dann auch später aussehen. Beispiel für den XML-Code wäre folgender:

Code:
<homepage>

	<block>
		<title>Kontakt:</title>

			<text>Name: </text>

			<input>Willy Styler</input>

			<htmltext>umrbuch</htmltext>




			<text>Street: </text>

			<input>Hanse Str. 2</input>

			<htmltext>umrbuch</htmltext>




			<text>City: </text>

			<input>12345 Musterstadt</input>

			<input>GERMANY</input>

			<htmltext>umrbuch</htmltext>


	</block>



	<block>
		<title>Interessen: </title>

			<text>Hobbies: </text>

			<start_selection>interessen</start_selection>

			<selection> </selection>

			<selection>Lieblingsfilme:</selection>

			<selection>Lieblingsserien:</selection>

			...

			...

			<input></input>

	</block>

	...

	...


</homepage>

Kurz: Ich will mir also ein Formular aus ner XML-Datei erstellen.

Hoffe, ihr versteht mein Anliegen.

Die PHP-Datei dazu müsste irgendwie so aussehen:

Code:
 <?php
  $doc = new DOMDocument();
  $doc->load( 'project.xml' );
  
  $homepage = $doc->getElementsByTagName( "homepage" );
  foreach( $homepage as $block )
  {


//Solange weitere Elemente verfügbar, überprüfe nächstes Element und speicher in $next oder so

switch($next) {
  case("text"):
     echo "$next";
     break;
  case("htmltext"):
     if($next == "umbruch")echo "<br/>";
     break;
  case("input"):

?>

   <input name = <?php echo "$next";?> type = "text" size = "30" maxlength="50" value = "<?php echo "$next";?>" />

<?php

     break;
  case("start_selection"):

?>

<select name="<?php echo "$next";?>">

<?php

      break;
 case("blablabla"):
        blabla
     break;
...
...
...

?>

Ein Beispiel zum Resultat ist unter http://adnan1984.de/avp/aboutme.php zu finden. Ich bin dankbar für jede Hilfe und auch gewillt, demjenigen ein kleines Taschengeld zu zahlen, der mir den PHP-Code fertig erstellt, so dass ich nur noch die Switch-Anweisungen erstellen muss.

Danke schon mal im Vorraus.

Gruß, Adnan
 
Moin Adnan,

...eine Antwort auf die eigentliche Frage möchte ich dir nicht geben, dazu ist mir die Vorgehensweise, mit der du dort die Daten verarbeitest, zu sehr gegen den Strich(sorry, ist nicht bös gemeint)

Ich möchte vielmehr dein Augenmerk auf XSLT lenken.
Das ist genau für soetwas gedacht, wie du es vorhast: Eine XML-Datenstruktur als Basis nehmen und diese mittels eines Stylesheets zu etwas anderem umwandeln(in deinem Fall zu einem HTML-Dokument-(Fragment)).

Schau es dir an und bringe etwas Zeit mit....wenn du Genug Willen und Durchhaltevermögen hast, dich dort einzufuchsen, möchtest du mit nichts anderem mehr arbeiten wollen.:)
 
So, danke Sven, aber das ist mir echt zu kompliziert, jetzt noch wieder was neues anzufangen.

Hab mich entschieden, dass Ganze über Funktionen und seine Aufrufe zu machen. Trage die Texte als ein Array in die Signatur und sende sie als Parameter an die Funktion, die dann HTML-Code ausgibt.


Gruß, Adnan
 
Zurück