|
|
|
| Помогите пожалуйста...
Нужно пропарсить XML документ.... Много читал про это в интернете, но хоть убей не могу нормально написать скрипт парсера
<?php
$res = ";
function startElement($parser, $name, $attrs) {
global $res;
switch ($name) {
case '':
$res .= 'Город - ';
$res .= '<strong>'.mb_convert_encoding(
urldecode($attrs['SNAME']),
'UTF-8', 'windows-1251').'</strong><br />';
$res .= 'широта - '.$attrs['LATITUDE'].' градусов<br />';
$res .= 'долгота - '.$attrs['LONGITUDE'].' градусов<br />';
break;
}
}
function endElement($parser, $name) {}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://localhost/denwer/Town.xml');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_PROXYPORT, 8080);
curl_setopt($ch, CURLOPT_PROXY, '192.168.0.1');
$data = curl_exec($ch);
curl_close($ch);
$XMLparser = xml_parser_create();
xml_set_element_handler($XMLparser, 'startElement', 'endElement');
if (!xml_parse($XMLparser, $data)) {
die('Ошибка обработки данных');
}
xml_parser_free($XMLparser);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Данные от gismeteo</title>
</head>
<body style="font-family:Verdana, sans-serif">
<?php
echo $res;
?>
|
Ругается на urldecode... | |
|
|
|
|
|
|
|
для: makhach
(23.06.2009 в 18:59)
| | А где этот самый массив $attrs? | |
|
|
|
|
|
|
|
для: Zend72
(23.06.2009 в 19:55)
| | Этот массив заполняется из XML файла, атрибутами 'TOWN'. допустим XML файл такой
<MMWEATHER>
<REPORT type="frc3">
<TOWN index="33345" sname="Киев" latitude="50" longitude="30">
</TOWN>
</REPORT>
</MMWEATHER>
|
| |
|
|
|
|
|
|
|
для: makhach
(23.06.2009 в 18:59)
| | Во второй строке кода у вас не закрыта кавычка
PS. Кстати, я у Вас функции urldecode вообще не вижу | |
|
|
|
|
|
|
|
для: winflip
(23.06.2009 в 20:05)
| |
$res .= '<strong>'.mb_convert_encoding(
urldecode($attrs['SNAME']),
'UTF-8', 'windows-1251').'</strong><br />';
|
| |
|
|
|
|
|
|
|
для: makhach
(23.06.2009 в 18:59)
| | Как ругается? | |
|
|
|
|
|
|
|
для: makhach
(23.06.2009 в 18:59)
| | Спасибо всё решил | |
|
|
|