SimpleXML Hilfe + Datum

iceT18

Grünschnabel
Hallo,

Ich muss ein XML File auslesen und danach ausgeben. Funktioniert fast tadellos, hab nur 2 kleine Probleme :-(

Mein XML File schaut in etwa so aus:
Code:
<FORECAST date='20090513'>
          <MINIMUM>13</MINIMUM>
          <MAXIMUM>22</MAXIMUM>
          <SYMBOL>6</SYMBOL>
          <PRECIPITATIONPROB>95%</PRECIPITATIONPROB>
        </FORECAST>
        <FORECAST date='20090514'>
          <MINIMUM>12</MINIMUM>
          <MAXIMUM>24</MAXIMUM>
          <SYMBOL>3</SYMBOL>
          <PRECIPITATIONPROB>30%</PRECIPITATIONPROB>
        </FORECAST>
Auslesen und ausgeben klappt auch (Minimum,maximum,symbol,pre)
Hier z.b das minimum:
Code:
$xml = simplexml_load_file($datei);
    foreach($xml->FORECAST as $forecast){
        echo $forecast->MINIMUM ?>
}
Nun mein Problem, wie kann ich das Datum bei
Code:
<FORECAST date='20090513'>
auslesen?

Bzw. wenn ich das Datum mit echo ausgeben kann, wie könnte ich es realisieren, dass das Datum wie folgt umgewandelt wird:
>>Donnerstag, 13.05.2009<<


Zur Info, das XML File wird täglich automatisch aktualisiert, das mit dem Datum sollte somit auch automatisch gehen.
Hab im Internet was von "xmlns:date="http://exslt.org/dates-and-times" gelesen, habs aber nicht geschafft zum einbinden.

Vielen Dank für die Hilfe.

mfg
iceT
 
Hi,

auf Attribute greifst du über

PHP:
echo '<pre>', print_r($forecast->attributes()), '</pre>';
zu.

Zur Formatierung:
Du könntest den String dann mit http://php.net/str_split nach 2 Zeichen zerlegen (ab PHP 5) und dann zusammenbauen:
PHP:
$split = str_split('20090305', 2);
$jahr = $split[0] . $split[1];
$monat = $split[2];
$tag = $split[3];

Und dann damit weiterarbeiten!
 
PHP:
function myXmlDate ($xml) {
	$days = array ( 'Mon' => 'Montag',
					'Tue' => 'Dienstag',
					'Wed' => 'Mittwoch',
					'Thu' => 'Donnerstag',
					'Fri' => 'Freitag',
					'Sat' => 'Samstag',
					'Sun' => 'Sonntag');
	
	$date = preg_replace('/([\d]{4})([\d]{2})([\d]{2})/', '$3.$2.$1', $date);
	
	return '>>' . $days[date('D',strtotime ($date))] . ', ' . $date . '<<';
}

print myXmlDate ($xml->attributes()->date);

Oder so.
 
Zurück