XML Parsen

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&quotes=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 :confused:

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&quotes=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&quotes=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&quotes=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