Szenario eines XML Dokuments:
In einem Mehrfamilienhaus wohnt ein Mieter Axel. Als Untermieter leben mit ihm Berta und Claudia.
Da diese in der 1. Etage wohnen, können diese nur Mietprobleme haben, zu den Mietern in der 2. Etage.
In der zweiten Etage wohnen Andreas, und als Untermieter Bastian.
Wenn es Ärger zwischen beiden Etagen gibt, dann gibt es diese Möglichkeiten, wer mit wem den Ärger haben kann:
Axel - Andreas
Axel - Bastian
Berta - Andreas
Berta - Bastian
Claudia - Andreas
Claudia - Bastian
In der 3. Etage wohnt nur Stefan. Unter ihm wohnen Andreas und Bastian. Also ist die Ärger-Kombination:
Andreas - Stefan
Bastian - Stefan
3. und 4. Etage
Stefan - Torsten
Jetzt zur Verwunderung geht es mit der 4. Etage und der 1. Etage des 2 Mehrfamilienhauses weiter:
Mehrfamilienhaus 2 mit Oskar und Petra hat die Kombinationen:
Torsten – Oskar
Torsten – Petra
(Der Grund ist, dass das Problem in einer anderen Disziplin angewandt wird und ich nur abstrahieren wollte.)
Ich möchte nun mit SimpleXML diese Datei auslesen und die oben erwähnten Kombinationen ausgeben lassen. Problem scheint aber zu sein, dass eine foreach Schleife stupide alle Objekte von XML durchgeht und man nicht im Array mit prev() und next() umherspringen kann, wie ich es mir vorstellen würde. Kennt jemand eine Möglichkeit wie ich die Kombinationen dennoch nach oben gewünschten Beispiel ausgeben lassen kann? Ich habe es schon
Diese Frage basiert auf dem Problem: In foreach den Arrayzeiger vor- und zurück bewegen
http://www.tutorials.de/forum/php/300974-foreach-den-arrayzeiger-vor-und-zurueck-bewegen.html
In einem Mehrfamilienhaus wohnt ein Mieter Axel. Als Untermieter leben mit ihm Berta und Claudia.
Da diese in der 1. Etage wohnen, können diese nur Mietprobleme haben, zu den Mietern in der 2. Etage.
In der zweiten Etage wohnen Andreas, und als Untermieter Bastian.
Wenn es Ärger zwischen beiden Etagen gibt, dann gibt es diese Möglichkeiten, wer mit wem den Ärger haben kann:
Axel - Andreas
Axel - Bastian
Berta - Andreas
Berta - Bastian
Claudia - Andreas
Claudia - Bastian
In der 3. Etage wohnt nur Stefan. Unter ihm wohnen Andreas und Bastian. Also ist die Ärger-Kombination:
Andreas - Stefan
Bastian - Stefan
3. und 4. Etage
Stefan - Torsten
Jetzt zur Verwunderung geht es mit der 4. Etage und der 1. Etage des 2 Mehrfamilienhauses weiter:
Mehrfamilienhaus 2 mit Oskar und Petra hat die Kombinationen:
Torsten – Oskar
Torsten – Petra
(Der Grund ist, dass das Problem in einer anderen Disziplin angewandt wird und ich nur abstrahieren wollte.)
XML:
<xml>
<mehrfamilienhaus id="1">
<personen>
<vorname>Axel</vorname>
<nachname>Armon</nachname>
</personen>
<personen>
<vorname>Berta</vorname>
<nachname>Becker</nachname>
<untermieter />
</personen>
<personen>
<vorname>Claudia</vorname>
<nachname>Chuck</nachname>
<untermieter />
</personen>
<personen>
<vorname>Andreas</vorname>
<nachname>A.</nachname>
</personen>
<personen>
<vorname>Bastian</vorname>
<nachname>B.</nachname>
<untermieter />
</personen>
<personen>
<vorname>Stefan</vorname>
<nachname>S.</nachname>
</personen>
<personen>
<vorname>Torsten</vorname>
<nachname>T.</nachname>
</personen>
</mehrfamilienhaus>
<mehrfamilienhaus id="2">
<personen>
<vorname>Oskar</vorname>
<nachname>Ombar</nachname>
</personen>
<personen>
<vorname>Petra</vorname>
<nachname>Peschke</nachname>
<untermieter />
</personen>
</mehrfamilienhaus>
</xml>
Ich möchte nun mit SimpleXML diese Datei auslesen und die oben erwähnten Kombinationen ausgeben lassen. Problem scheint aber zu sein, dass eine foreach Schleife stupide alle Objekte von XML durchgeht und man nicht im Array mit prev() und next() umherspringen kann, wie ich es mir vorstellen würde. Kennt jemand eine Möglichkeit wie ich die Kombinationen dennoch nach oben gewünschten Beispiel ausgeben lassen kann? Ich habe es schon
PHP:
<?php
echo "<pre>";
$xml=simplexml_load_file("mehrfamilienhaeuser.xml");
foreach($xml->xpath("/xml/mehrfamilienhaus/personen") as $werte){
echo $werte->vorname." ";
echo $werte->nachname." ";
if(count($werte->xpath('untermieter')) > 0){
echo "\tist Untermieter von\t$ist_mieter<br />";
}else{
echo "<br />";
$ist_mieter = $werte->vorname." ".$werte->nachname;
}
}
echo "</pre>";
?>
Diese Frage basiert auf dem Problem: In foreach den Arrayzeiger vor- und zurück bewegen
http://www.tutorials.de/forum/php/300974-foreach-den-arrayzeiger-vor-und-zurueck-bewegen.html
Zuletzt bearbeitet von einem Moderator: