Help: XML Daten in PHP darstellen
voyager 30.03.2006 - 15:33 1264 5
voyager
kühler versilberer :)
|
Ich hab folgendes Problem: Ich bekomme stündlich ein xml file , zwar mit wechselnden Inhalt, die Struktur ist aber immer gleich und die gleiche Anzahl an Datensätzen , und diese Daten sollen per PHP auf ner Website Grafisch aufgewertet dargestellt werden. Es geht um Wetterdaten , die auf nem Portal ( Uni) dargestellt werden sollen vielleicht weis jemand rat zu jedem Iconcode gibt es ein gif file im format icon_xx.gif wobei xx der wert dazu ist zu jedem winddir_text gibt es ein gif file im format wind_xxx.gif , wobei xxx der wert dazu ist weis jemand wie man das angehen könnte ? <?xml version="1.0" encoding="ISO-8859-1"?>
<forecasts>
<city>
<name>Graz</name>
<forecast>
<type>hourly</type>
<date>20060329T11:00:00</date>
<iconcode>22</iconcode>
<icontext>leichter Regen</icontext>
<temp_max>10</temp_max>
<temp_min>10</temp_min>
<winddir_value>990</winddir_value>
<winddir_text>wechselnd</winddir_text>
<windspeed>9</windspeed>
</forecast>
<forecast>
<type>hourly</type>
<date>20060329T14:00:00</date>
<iconcode>1</iconcode>
<icontext>sonnig</icontext>
<temp_max>13</temp_max>
<temp_min>13</temp_min>
<winddir_value>241</winddir_value>
<winddir_text>WSW</winddir_text>
<windspeed>13</windspeed>
</forecast>
<forecast>
<type>hourly</type>
<date>20060329T17:00:00</date>
<iconcode>3</iconcode>
<icontext>heiter</icontext>
<temp_max>13</temp_max>
<temp_min>13</temp_min>
<winddir_value>245</winddir_value>
<winddir_text>WSW</winddir_text>
<windspeed>12</windspeed>
</forecast>
<forecast>
<type>hourly</type>
<date>20060329T20:00:00</date>
<iconcode>2</iconcode>
<icontext>wolkenlos</icontext>
<temp_max>4</temp_max>
<temp_min>4</temp_min>
<winddir_value>290</winddir_value>
<winddir_text>WNW</winddir_text>
<windspeed>7</windspeed>
</forecast>
<forecast>
<type>daily</type>
<date>20060329T00:00:00</date>
<iconcode>5</iconcode>
<icontext>wolkig</icontext>
<temp_max>12</temp_max>
<temp_min>0</temp_min>
<winddir_value>311</winddir_value>
<winddir_text>NW</winddir_text>
<windspeed>11</windspeed>
</forecast>
<forecast>
<type>daily</type>
<date>20060330T00:00:00</date>
<iconcode>5</iconcode>
<icontext>wolkig</icontext>
<temp_max>15</temp_max>
<temp_min>-1</temp_min>
<winddir_value>228</winddir_value>
<winddir_text>SW</winddir_text>
<windspeed>8</windspeed>
</forecast>
<forecast>
<type>daily</type>
<date>20060331T00:00:00</date>
<iconcode>22</iconcode>
<icontext>leichter Regen</icontext>
<temp_max>15</temp_max>
<temp_min>7</temp_min>
<winddir_value>261</winddir_value>
<winddir_text>W</winddir_text>
<windspeed>17</windspeed>
</forecast>
<forecast>
<type>daily</type>
<date>20060401T00:00:00</date>
<iconcode>22</iconcode>
<icontext>leichter Regen</icontext>
<temp_max>15</temp_max>
<temp_min>6</temp_min>
<winddir_value>258</winddir_value>
<winddir_text>WSW</winddir_text>
<windspeed>11</windspeed>
</forecast>
</city>
</forecasts>
|
ica
hmm
|
du kannst entweder serverseitig das ganze per php in html konvertieren oder du gibst xml aus und schreibst ein passendes stylesheet sodass die konvertierung clientseitig passiert. sag was du willst dann kann ich dir weiterhelfen
|
voyager
kühler versilberer :)
|
was einfacher zu realisieren ist, bin da ganz offen
|
that
ModeratorHoffnungsloser Optimist
|
Sieht nach einem klassichen Einsatzfall für XSLT aus.
|
BuSHidO
ist süß
|
|
Rektal
Here to stay
|
SimpleXML gibts nur ab PHP5 .. aber Ich wuerde aus zwei Gruenden MiniXML ( http://minixml.psychogenic.com/ ) Vorschlagen: 1) schnell und einfach 2) du hast eine sehr einfache Struktur MiniXML macht folgendes: nimmt das ganze XML, parsed es (mit schwindligen Regex, du brauchst also kein PHP-Modul das XML kann) und du hast eine toArray() Methode, die dir das ganze XML als Array zurueck gibt. Bei deiner Struktur wuerde das Array in etwa so aussehen: $data['forecasts']['city']['name'] = 'Graz';
foreach( $data['forecasts']['city']['name']['forecasts'] as $aForecast) {
echo $aForecast['iconcode'], '<br>';
}
Ist also echt Deppensicher, wenn meine zwei Requirements gegeben sind. Im Endeffekt musst 0 Tau von XML haben, nur wissen wie du mit PHP Arrays umgehst. Und nebenbei gesagt: wer Smarty verwendet, weiss das Smarty sehr excellten Support fuer Array-Syntax hat. MiniXML ist quasi praedestiniert dazu. HTH
|