Daten aus XML File auslesen ?

PHP:
<?php
$xml = simplexml_load_file('https://xml.livewatch.de/remote/serverStatusXML?xxxxxxx');
foreach($xml->serverlist->server AS $server)
   echo $server->status;

?>

Geht zwar performanter (nur den letzten Status ausgeben), aber für den Anfang tuts das.

Greetz

paddya
 
ne, 12 mal war nicht gewünscht, oder wie kommst du darauf ?
1x den Status ausgeben, das war mein eigentliches Ziel.

Ok, vergiss das mit der if schleife, sry ;)
 
ne, 12 mal war nicht gewünscht, oder wie kommst du darauf ?
1x den Status ausgeben, das war mein eigentliches Ziel.
Wenn du nur einmal den Status haben willst, musst du dir überlegen, welchen. Immer den ersten? Einen beliebigen? Oder was für einen?
 
Ok, dann iterierst du eben nur 3x. Entweder mit for-Schleife und Index-Zugriff oder du baust in den jetzigen Code einen Zähler ein und breakst nach dem dritten Mal.
 
ok, klingt zwar recht simpel, aber wollt jetzt mich jetzt ehrlich egsagt nicht so in die Materie des PHPs einarbeiten für dieses kleine Scriptchen, denn brauchs eigentlich nur dafür, sonst nicht :]
 
nicht einarbeiten, wie bereits erwähnt. schreib ich undeutlich ?
Wenn du nicht selber nachdenken willst, bist du hier falsch. Hier erhältst du lediglich Tipps und Anregungen. Das Programmiererforum ist kein "Hilfe, ich bin zu faul, was zu machen. Bitte, ich such n Dummen, der mir mal was macht"-Forum.

Vielleicht hab ich ja aber nur die Regeln undeutlich geschrieben :think:
 
ok, dann bin ich tatsächlich falsch, denn genau das suche ich. Allerdings nicht, weil ich grundsätzlich zu faul bin, sondern weil ich den Sinn nicht sehe, mich ernsthaft in php einzuarbeiten, wenn ich es nur fürn 2 Min Script brauche und danach nicht mehr. Ich dachte da gäbe es kompetente Menschen, die mich dahingehend verstehen und mir das teil kurz zusammenbasteln, sind ja nur die paar zeilen und fertig.

einige verstehen mich auch, du gehörst scheinbar nicht dazu, das ist auch ok..diejenigen, die mir dennoch kurz das teil fertig machen können (des er nur den 1,2, und 3 Status, anstatt alle 12 ausliest), bitte ruhig bei mir melden ;)
 
Probier mal:
PHP:
<?php
$status = 0;
$xml = simplexml_load_file('https://xml.livewatch.de/remote/serverStatusXML?xxxxxxx');
foreach ($xml->serverlist->server as $server)
{
  $status = $server->status;
}
switch ($status)
{
  case 1:
    echo 'online';
  break;
  case 2:
    echo 'probleme';
  break;
  case 3:
    echo 'down';
  break;
  default:
    echo 'unknown';
  break;
}
?>
Quick and dirty, aber sollte funktionieren.
 
ok, nun zeigt er mir wie gewünscht 1x das online an, da der status dafür auf 1 steht :)

Noch eine frage, und zwar ist das Grund xml dokiemnt ja so aufgebaut, des es "status" 12 mal oder so gibt, jedes mal für verschiedene server (ids):

Code:
<serverlist>
−
<server id="439431bab0df6">
<active>1</active>
<status>1</status>


Mich interessieren nur den 1,3 und den 10 dieser Blöcke. Bzw. immer nur den <status> Tag dieser Blöocke. Da sobige Script nimmt nun vermutlich den allerersten, oder ? Ok, gut, aber nun bräuchte ich das gleiche Script jeweils einmal für nur den 3. Status und einmal nur für den 10.

Klar, kopieren, aber kann man dem sagen,d es er gleich zum 3 bzw. 10 springt ?
 
Probier dann mal diese Variante:
PHP:
<?php
$server = 1;
$status = 0;
$xml = simplexml_load_file('https://xml.livewatch.de/remote/serverStatusXML?xxxxxxx');
if (!empty($xml->serverlist->server[$server-1]->status))
{
  $status = $xml->serverlist->server[$server-1]->status;
}

$possible_status = array(1=>'online', 2=>'probleme', 3=>'down');
echo isset($possible_status[$status]) ? $possible_status[$status] : 'unknown';
?>
Somit müsstest Du nur die Angabe bei $server auf die gewünschte Zahl ändern.
 
Zuletzt bearbeitet:
Naja, ich dachte, Dich interessieren die Einträge 1, 3 und 10. Und die dürfte man genau in der Reihenfolge so auslesen können.
 
ok, habs eingebaut, nun gibts gar nix mehr, komplett weiße Seite.

Wie vermutet, denke er kann mit der variable nicht viel anfangen, weil musst du nicht vorher irgendwie wissen, wie genau die aufgebaut ist, die xml datei ? Wo ein EIntrag anfängt, wo aufhört ?
 
Die weisse Seite kommt wohl eher von 'nem vergessenen Semikolon, das ich oben reineditiert habe. Probier's nochmal.

Und über den Aufbau muss ich gar nicht so viel wissen. SimpleXML lädt mir die Datei und wenn's vorher mit dem Iterieren klappt, dürfte ich auch mit dem numerischen Index zum Ziel kommen, wenn ich mich recht entsinne.