Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: PHP и XML
 
 автор: makhach   (23.06.2009 в 18:59)   письмо автору
 
 

Помогите пожалуйста...
Нужно пропарсить 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...

  Ответить  
 
 автор: Zend72   (23.06.2009 в 19:55)   письмо автору
 
   для: makhach   (23.06.2009 в 18:59)
 

А где этот самый массив $attrs?

  Ответить  
 
 автор: makhach   (23.06.2009 в 20:07)   письмо автору
 
   для: Zend72   (23.06.2009 в 19:55)
 

Этот массив заполняется из XML файла, атрибутами 'TOWN'. допустим XML файл такой
      <MMWEATHER>
      <REPORT type="frc3">
          <TOWN index="33345" sname="Киев" latitude="50" longitude="30">
          </TOWN>
      </REPORT>
      </MMWEATHER>

  Ответить  
 
 автор: winflip   (23.06.2009 в 20:05)   письмо автору
 
   для: makhach   (23.06.2009 в 18:59)
 

Во второй строке кода у вас не закрыта кавычка
PS. Кстати, я у Вас функции urldecode вообще не вижу

  Ответить  
 
 автор: makhach   (23.06.2009 в 20:12)   письмо автору
 
   для: winflip   (23.06.2009 в 20:05)
 

         $res .= '<strong>'.mb_convert_encoding(
                              urldecode($attrs['SNAME']),
                              'UTF-8', 'windows-1251').'</strong><br />'; 

  Ответить  
 
 автор: mihdan   (24.06.2009 в 11:02)   письмо автору
 
   для: makhach   (23.06.2009 в 18:59)
 

Как ругается?

  Ответить  
 
 автор: makhach   (24.06.2009 в 13:16)   письмо автору
 
   для: makhach   (23.06.2009 в 18:59)
 

Спасибо всё решил

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования