Ik probeer het volgende xml-bestand te parsen met php::


<?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:


<!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
Plaatst eerst eens [ignore]
[/ignore]
Dan zien we wel weer verder...
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
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.
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
kan niemand me helpen?

Hoe krijg ik uit:

- <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
de dagnaam met php?
Dat weet ik wel
$item->Verwachting[1];
Alleen wat wordt bedoelt met
Plaatst eerst eens
 

Dan zien we wel weer verder...
Hoe ziet dat eruit?
Zo, wat denk je? Ik bump even een bericht uit mei 2007?

Reageren