weer.nl xml php parsing

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jasper

Jasper

26/05/2007 22:05:00
Quote Anchor link
Ik probeer het volgende xml-bestand te parsen met php::

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?xml version="1.0" encoding="ISO-8859-1" ?>
- <Vijfdaagseverwachting aanmaakdatum="20070526" aanmaaktijd="18:31">
- <Plaatsen>
- <Plaats naam="Ouddorp">
- <Verwachtingen>
- <Verwachting dagnaam="zondag" dag="27" maandnaam="mei" maand="5" jaar="2007" datum="20070527">
  <minimumtemperatuur>12</minimumtemperatuur>
  <maximumtemperatuur>15</maximumtemperatuur>
  <windrichting>w</windrichting>
  <windsnelheid>3-4</windsnelheid>
  <weersymbool>C</weersymbool>
  <weersomschrijving>geheel bewolkt</weersomschrijving>
  <zonneschijnduur>0</zonneschijnduur>
  <neerslagkans>20</neerslagkans>
  </Verwachting>
- <Verwachting dagnaam="maandag" dag="28" maandnaam="mei" maand="5" jaar="2007" datum="20070528">
  <minimumtemperatuur>11</minimumtemperatuur>
  <maximumtemperatuur>16</maximumtemperatuur>
  <windrichting>wnw</windrichting>
  <windsnelheid>3-4</windsnelheid>
  <weersymbool>C</weersymbool>
  <weersomschrijving>zwaar bewolkt</weersomschrijving>
  <zonneschijnduur>2</zonneschijnduur>
  <neerslagkans>10</neerslagkans>
  </Verwachting>
- <Verwachting dagnaam="dinsdag" dag="29" maandnaam="mei" maand="5" jaar="2007" datum="20070529">
  <minimumtemperatuur>12</minimumtemperatuur>
  <maximumtemperatuur>15</maximumtemperatuur>
  <windrichting>w</windrichting>
  <windsnelheid>4-5</windsnelheid>
  <weersymbool>C</weersymbool>
  <weersomschrijving>zwaar bewolkt</weersomschrijving>
  <zonneschijnduur>4</zonneschijnduur>
  <neerslagkans>10</neerslagkans>
  </Verwachting>
- <Verwachting dagnaam="woensdag" dag="30" maandnaam="mei" maand="5" jaar="2007" datum="20070530">
  <minimumtemperatuur>12</minimumtemperatuur>
  <maximumtemperatuur>17</maximumtemperatuur>
  <windrichting>zzw</windrichting>
  <windsnelheid>3-4</windsnelheid>
  <weersymbool>E</weersymbool>
  <weersomschrijving>buien</weersomschrijving>
  <zonneschijnduur>5</zonneschijnduur>
  <neerslagkans>40</neerslagkans>
  </Verwachting>
- <Verwachting dagnaam="donderdag" dag="31" maandnaam="mei" maand="5" jaar="2007" datum="20070531">
  <minimumtemperatuur>13</minimumtemperatuur>
  <maximumtemperatuur>19</maximumtemperatuur>
  <windrichting>zzw</windrichting>
  <windsnelheid>3-4</windsnelheid>
  <weersymbool>B</weersymbool>
  <weersomschrijving>half bewolkt</weersomschrijving>
  <zonneschijnduur>6</zonneschijnduur>
  <neerslagkans>30</neerslagkans>
  </Verwachting>
  </Verwachtingen>
  </Plaats>
  </Plaatsen>
  </Vijfdaagseverwachting>


met code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<?
if (!isset($zipCode)){$zipCode = 90210;}
?>


<head>
    <title>Nine Day Advance Forecast</title>
</head>

<body>

<?php
$ch
= curl_init();

curl_setopt ($ch, CURLOPT_URL, "http://www.klepperstee.com/5day_weather.xml");
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$weather_input=curl_exec ($ch);
curl_close ($ch);
$weather_data = array();
$xml_current_tag_state = '';
$day_count = 0;
global $weather_data, $xml_current_tag_state;


function
startElementHandler($parser,$element_name)
    {

    global $xml_current_tag_state;
    $xml_current_tag_state = $element_name;
    
    }

function
endElementHandler($parser,$element_name)
    {

    global $day_count, $xml_current_tag_state;
    if ($element_name == "VERWACHTING")
        {

        $day_count++;
        }

    $xml_current_tag_state = "";
    }

function
weatherDataHandler($parser, $data)
    {

    global $weather_data, $xml_current_tag_state, $day_count;
    if($xml_current_tag_state == "")
        return;
    switch ($xml_current_tag_state)
        {
        case
"DAGNAAM":
            $weather_data[$day_count]["dagnaam"] = $data;
            echo $data;
            break;
        case
"DATUM":
            $weather_data[$day_count]["datum"] = $data;
               echo $data;
            break;
        case
"WEERSYMBOOL":
            $weather_data[$day_count]["weersymbool"] = $data;
               echo $data;
            break;
        case
"WEERSOMSCHRIJVING":
            $weather_data[$day_count]["weersomschrijving"] = $data;
               echo $data;
            break;
        case
"MAXIMUMTEMPERATUUR":
            $weather_data[$day_count]["maximumtemperatuur"] = $data;
               break;
            echo $data;        
        case
"MINIMUMTEMPERATUUR":
            $weather_data[$day_count]["minimumtemperatuur"] = $data;
            echo $data;
               break;
        case
"WINDRICHTING":
            $weather_data[$day_count]["windrichting"] = $data;
            echo $data;
               break;
        case
"WINDSNELHEID":
            $weather_data[$day_count]["windsnelheid"] = $data;
            echo $data;
               break;
        
        
        default:

            $xml_current_tag_state = $element_name;
            break;
        }


    }


if (!($xml_parser = xml_parser_create()) )
    die ("Couldn't create XML parser!");

xml_set_element_handler($xml_parser, "startElementHandler", "endElementHandler");
xml_set_character_data_handler($xml_parser, "weatherDataHandler");

xml_parse($xml_parser, $weather_input);

xml_parser_free($xml_parser);

echo "<h4>Weather for: $zipCode</h4>";
for ($i=0;$i <$day_count; ++$i)
    {

    echo "<p>";
echo "<img src=\"weersymbolen/weersymbolen/".$weather_data["weersymbool"].".jpg\"   alt=\"".$weather_data["Forecast"]."\"><br>";
    echo "Dag = ".$weather_data[$i]["dagnaam"]."<br>";
    echo "Datum = ".$weather_data[$i]["datum"]."<br>";
    
    echo "Weer = ".$weather_data[$i]["weersomschrijving"]."<br>";
    echo "Max = ".$weather_data[$i]["maximumtemperatuur"]."<br>";
    echo "Max = ".$weather_data[$i]["minimumtemperatuur"]."<br>";
    echo "Windkracht = ".$weather_data[$i]["windsnelheid"]."<br>";
    echo "</p>";
    }



?>


</body>
</html>


Alles lukt behalve:

- <Verwachting dagnaam="zondag" dag="27" maandnaam="mei" maand="5" jaar="2007" datum="20070527">

deze gegevens moet ik waarschijnlijk anders oproepen ofzo?

Kan iemand me helpen???

Met vriendelijke groeten,

Jasper
Gewijzigd op 01/01/1970 01:00:00 door Jasper
 
PHP hulp

PHP hulp

20/11/2024 13:39:09
 

26/05/2007 22:09:00
Quote Anchor link
Plaatst eerst eens
Dan zien we wel weer verder...
 
Bart van der veen

bart van der veen

26/05/2007 22:15:00
Quote Anchor link
met css in xml kun je gewoon aanroepen met "dagnaam" en "datum" ed. dat zou je kunnen proberen:

$weather_data[$i]["dagnaam"]

of misschien is het array in array

$weather_data[$i]["Verwachting"]["dagnaam"]

sucses verder
 
Jasper

Jasper

27/05/2007 09:44:00
Quote Anchor link
Hoe werkt css?? Hoe komt dat er dan uit te zien?

Groetjes,

Jasper

Bedankt webmakerij, dat van die code weergave wist ik nog niet. Het staat nu goed.
 
Bart van der veen

bart van der veen

27/05/2007 10:42:00
 
Jasper

Jasper

27/05/2007 11:11:00
Quote Anchor link
css is gewoon voor de stylesheets, dat heeft toch niks met het probleem van de xml parsing te maken?? De vormgeving bekijk ik later wel.

$weather_data[$i]["Verwachting"]["dagnaam"]

Doet niks.

Groetjes,

Jasper
 
Jasper

Jasper

27/05/2007 13:26:00
Quote Anchor link
kan niemand me helpen?

Hoe krijg ik uit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
- <Vijfdaagseverwachting aanmaakdatum="20070526" aanmaaktijd="18:31">
- <Plaatsen>
- <Plaats naam="Ouddorp">
- <Verwachtingen>
- <Verwachting dagnaam="zondag" dag="27" maandnaam="mei" maand="5" jaar="2007" datum="20070527">
  <minimumtemperatuur>12</minimumtemperatuur>
  <maximumtemperatuur>15</maximumtemperatuur>
  <windrichting>w</windrichting>
  <windsnelheid>3-4</windsnelheid>
  <weersymbool>C</weersymbool>
  <weersomschrijving>geheel bewolkt</weersomschrijving>
  <zonneschijnduur>0</zonneschijnduur>
  <neerslagkans>20</neerslagkans>
  </Verwachting>


de dagnaam met php?

met bijvoorbeeld minimumtemperatuur lukt het wel, wat moet er anders?

Iemand moet het toch weten.

Groetjes,

Jasper
 
Maat

maat

07/10/2008 17:29:00
Quote Anchor link
de dagnaam met php?
Dat weet ik wel
$item->Verwachting[1];
Alleen wat wordt bedoelt met
Plaatst eerst eens
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1

Dan zien we wel weer verder...
Hoe ziet dat eruit?
Gewijzigd op 01/01/1970 01:00:00 door maat
 
- -

- -

07/10/2008 18:18:00
Quote Anchor link
Zo, wat denk je? Ik bump even een bericht uit mei 2007?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.