xml Ausgabe per PHP

Crimson

Crimson

Aktives Mitglied
Thread Starter
Dabei seit
18.04.2005
Beiträge
1.250
Reaktionspunkte
990
hallo leute

wie man eine "einfache" xml per php ausgibt ist mir soweit bekannt, jedoch häng ich gerade ziemlich fest und komm einfach nicht auf den Trichter... vielleicht könnt ihr mir ja helfen bzw. einen tip geben.

bei der ganzen Sache geht es um Ansprechpartner, die in die verschiedenen Bereiche einer Firma aufgeteilt sind. Mit einem Ansprechpartner würde ich das noch hinbekommen, aber es gibt pro Bereich mehrere und ich komm einfach nicht darauf, wie ich die alle aus der xml abgreifen kann.

hier erstmal meine xml
HTML:
<?xml version="1.0" encoding="utf-8" ?>
<datenbank>
  <bereich id="1">
    <bereichsname>Bereichsname</bereichsname>
    <person>
      <region>Region</region>
      <foto>foto.jpg</foto>
      <name>Name</name>
      <titel>Titel</titel>
      <position>Position</position>
      <firma>Firma</firma>
      <telefon>...</telefon>
      <email>...</email>
    </person>
    <person>
      <region>Region</region>
      <foto>foto.jpg</foto>
      <name>Name</name>
      <titel>Titel</titel>
      <position>Position</position>
      <firma>Firma</firma>
      <telefon>...</telefon>
      <email>...</email>
    </person>
  </bereich>
  <bereich id="2">
    <bereichsname>Bereichsname</bereichsname>
    <person>
      <region>Region</region>
      <foto>foto.jpg</foto>
      <name>Name</name>
      <titel>Titel</titel>
      <position>position</position>
      <firma>firma</firma>
      <telefon>telefon</telefon>
      <email>email</email>
    </person>
    <person>
      <region>Region</region>
      <foto>foto.jpg</foto>
      <name>Name</name>
      <titel>Titel</titel>
      <position>Position</position>
      <firma>Firma</firma>
      <telefon>...</telefon>
      <email>...</email>
    </person>
  </bereich>
</datenbank>
den Bereichs-tag hab ich mit einer ID versehen, da ich die einzelnen Bereiche getrennt voneinander darstellen muss.
mit diesem php-code bekomm ich ja eine person aus der xml angezeigt, aber wie muss ich ihn anpassen, dass er mir alle Personen aus einem Bereich anzeigt!?
PHP:
<?php

      $id = $_GET['id'];

      if (file_exists("ansprechpartner.xml")) {

         $xml = simplexml_load_file("ansprechpartner.xml");

         $path ="/datenbank/bereich[@id=".$id."]";


         if (!$res = $xml->xpath($path)) {
   echo "<h1>bla bla</h1>";
   }
   else { 
	    echo "<h1>".$res[0]->bereichsname."</h1>";
	   echo "<div id='kontakt'>";   
   echo "<div id='region'>".$res[0]->person->region."</div>";
   echo "<div id='foto'><img src='http://xxx/xml/".$res[0]->person->foto."'></div>";
   echo "<div id='name'>".$res[0]->person->name."</div>";
   echo "<div id='titel'>".$res[0]->person->titel."</div>";
   echo "<div id='position'>".$res[0]->person->position."</div>";
   echo "<div id='firma'>".$res[0]->person->firma."</div>";
   echo "<div id='telefon'><img src='http://xxx/phone.png' align='left'>".$res[0]->person->telefon."</div>";
   echo "<div id='email'><img src='http://xxx/mail.png' align='left'>".$res[0]->person->email."</div>";
   echo "</div>";
   }}

 else {
   exit("Konnte Datei nicht laden.");
}
?>

ich bin auf jeden fall mit meinem php am ende :D

Grüße
Yash
 
Mit SimpleXML ganz einfach (ungetestet):


PHP:
<?php 

$id = $_GET['id']; 

if (file_exists("ansprechpartner.xml")) { 

	try {
		$xml = simplexml_load_file("ansprechpartner.xml"); 
	
		$path ="/datenbank/bereich[@id=".$id."]"; 
	
		try {
		
			$res = $xml->xpath($path);
			
			foreach($res[0]->person as $person) {
				echo "<h1>".$res[0]->bereichsname."</h1>"; 
				echo "<div id='kontakt'>";    
				echo "<div id='region'>".$person->region."</div>"; 
				echo "<div id='foto'><img src='http://xxx/xml/".$person->foto."'></div>"; 
				echo "<div id='name'>".$person->name."</div>"; 
				echo "<div id='titel'>".$person->titel."</div>"; 
				echo "<div id='position'>".$person->position."</div>"; 
				echo "<div id='firma'>".$person->firma."</div>"; 
				echo "<div id='telefon'><img src='http://xxx/phone.png' align='left'>".$person->telefon."</div>"; 
				echo "<div id='email'><img src='http://xxx/mail.png' align='left'>".$person->email."</div>"; 
				echo "</div>"; 
			}
		
		}
		catch(Exception $e) {
			exit("Fehler im xPath."); 
		}
	
	}
	catch(Exception $e) {
		exit("Konnte Datei nicht laden."); 
	}
}
?>
 
meine fre**e :D
da sieht man vor lauter bäumen den Wald nicht mehr.... Dank dir Rupp :)
 
Zurück
Oben Unten