URL: https://www.overclockers.at/coding-stuff/help_xml_daten_in_php_darstellen_160973/page_1 - zur Vollversion wechseln!
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 ?
Code: PHP<?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>
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
was einfacher zu realisieren ist, bin da ganz offen
Sieht nach einem klassichen Einsatzfall für XSLT aus.
oder
http://www.php.net/simplexml
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:
Code:$data['forecasts']['city']['name'] = 'Graz'; foreach( $data['forecasts']['city']['name']['forecasts'] as $aForecast) { echo $aForecast['iconcode'], '<br>'; }
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025