Ребята подскажите почему, php код не полностью парсит вот этот кусок XML:
<forecast version="1.2" last_updated="Sun, 25 Nov 2012 19:23:41 +0200">
<url>http://www.weather.ua/show/?482</url>
<city id="482">
<name>Братск</name>
<name_en>bratsk</name_en>
<region></region>
<country id="643">
<name>Россия</name>
<name_en>Russia</name_en>
</country>
</city>
<current last_updated="Sun, 25 Nov 2012 19:21:54 +0200" expires="Sun, 25 Nov 2012 19:56:54 +0200">
<time>Sun, 25 Nov 2012 19:21:54 +0200</time>
<cloud>90</cloud>
<pict>_9_snow.gif</pict>
<t>-11</t>
<t_flik>-15</t_flik>
<p>737</p>
<w>1</w>
<w_gust>0</w_gust>
<w_rumb>110</w_rumb>
<h>91</h>
</current>
</forecast>
Сам php код
$depth = 0;
$file = "http://xml.weather.co.ua/1.2/forecast/482?dayf=5&userid=snowkite-go_ru&lang= ru";
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, ’stringElement’);
if (!($fp = fopen($file, "r"))) {
die("could not open XML input");
}
while ($data = fgets($fp)) {
if (!xml_parse($xml_parser, $data, feof($fp))) {
echo "<br>XML Error: ";
echo xml_error_string(xml_get_error_code($xml_parser));
echo " at line ".xml_get_current_line_number($xml_parser);
break;
}
}
function stringElement($parser, $str) {
if (strlen(trim($str)) > 0) {
global $depth;
echo str_repeat(" ", $depth * 3);
echo 'String: '.$str.'<br>';
}
}
function startElement($parser, $name, $attrs) {
global $depth;
echo str_repeat(" ", $depth * 3);
echo "<b>Element: $name</b><br>";
$depth++;
foreach ($attrs as $attr => $value) {
echo str_repeat(" ", $depth * 3);
echo 'Attribute: '.$attr.' = '.$value.'<br>';
}
}
function endElement($parser, $name) {
global $depth;
$depth--;
}
xml_parser_free($xml_parser);
На выходе я получаю это:
Element: FORECAST
Attribute: VERSION = 1.2
Attribute: LAST_UPDATED = Sun, 25 Nov 2012 19:32:49 +0200
Element: URL
Element: CITY
Attribute: ID = 482
Element: NAME
Element: NAME_EN
Element: REGION
Element: COUNTRY
Attribute: ID = 643
Element: NAME
Element: NAME_EN
А нужно, что бы я получал не только название элементов, но и их значения, в чем дело?