Hi,
ich hoffe das Thema wurde nicht schon beantwortet, aber ich komme leider nicht weiter. Ich möchte ein XML parsen und komme leider nicht über RAIN hinaus … unten das Objekt hierfür
SimpleXMLElement Object
(
[@attributes] => Array
(
[date] => 20181125115856
[id] => rain0
[rate] => 0.0
[total] => 1.0
[delta] => 0.0
[lowbat] => 0
)
)
Wie kann ich dort z.B. „rate“ ansprechen?
$xml = simplexml_load_file('http://'.$ip_meteohub.'/meteolog.cgi?mode=data&type=xml"es=1');
//echo $xml;
// aktuelle Leistung
$a = $xml->RAIN;
print_r ($a);
Danke für einen Tipp.
ok … bin zwar mental weiter … es ist ein Array und ich muss auf die Elemente zugreifen, aber ich bekomme es nicht gebacken
Hier das erste Beispiel in der Doku.
PHP: SimpleXMLElement::attributes - Manual
Michael
Danke Michael … bin aber leider nicht in der Lage die Transferleistung zu bringen
$ip_meteohub = "192.168.1.133";
$xml = simplexml_load_file('http://'.$ip_meteohub.'/meteolog.cgi?mode=data&type=xml"es=1');
$a = $xml->RAIN;
print_r ($a);
$xml = simplexml_load_string($xml);
foreach($xml->date[0]->attributes() as $a => $b) {
echo $a,'="',$b,"\"
";
}
Kannst Du mir evtl. einen tip geben was ich wo machen muss um z.B. an Date zu kommen?
Ohne Gewähr, da eben am Handy aus deinem Code zusammen kopiert.
$ip_meteohub = "192.168.1.133";
$xml = simplexml_load_file('http://'.$ip_meteohub.'/meteolog.cgi?mode=data&type=xml"es=1');
$a = $xml->RAIN->attributes();
print_r ($a);
Michael
Danke … das ist genau der Punkt an dem ich hänge. Damit kommt der Array
SimpleXMLElement Object
(
[@attributes] => Array
(
[date] => 20181125141253
[id] => rain0
[rate] => 0.0
[total] => 1.0
[delta] => 0.0
[lowbat] => 1
)
)
Wie greife ich jetzt auf die Elemente im Array zu … also z.B. [date] oder [id]
Ach, sorry war natürlich Müll.
$ip_meteohub = "192.168.1.133";
$xml = simplexml_load_file('http://'.$ip_meteohub.'/meteolog.cgi?mode=data&type=xml"es=1');
$a = $xml->RAIN;
print_r ($a['total']);
print_r ($a['rate']);
Michael
Super … damit komme ich dann weiter. Es ist bitter wie einfach es ist und wieviel ich drumherum gebastelt habe.
Danke
noch eine Frage … wenn ich diesen Wert nun in eine Variable schreiben will
SetValue(31067,$date);
dann bekomme ich den Fehler
Warning: Cannot auto-convert value for parameter Variable
Das Objekt ist aber ein String und auch die Variable ebenso.
object(SimpleXMLElement)#4 (1) {
[0]=>
string(14) „20181125144721“
}
Den Fehler sollte ich doch jetzt eigentlich nicht bekommen?
Den Typ musst du selber vorgeben.
SetValue(31067,(string)$date);
Oder auch (int) oder (float).
Michael
Danke - nochmal … das war’s