П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 176233 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 73089 раз(а).

Учебник HTML.
Просмотров 72743 раз(а).

Руководство по PHP5.
Просмотров 43493 раз(а).

Хостинг через призму DNS.
Просмотров 50100 раз(а).

Подборка текстов стандартных документов.
Просмотров 43730 раз(а).

Учебник PHP - Самоучитель
Просмотров 50047 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 50409 раз(а).

Внешние атаки...
Просмотров 40813 раз(а).

Учебник PHP.
Просмотров 35935 раз(а).

SSI в примерах.
Просмотров 26996 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь




ГЛАВА 14. РНР и XML

Преобразование XML в HTML

Предположим, у вас имеется документ XML bookmarks.xml, содержащий список ссылок. Он выглядит примерно так:

<?xml version="1.0"?>
<website>
<title>Epicurious</title>
<url>http://www.epicurious.com</url>
<description>
Epicurious is a great online cooking resource, providing tutorials.
recipes, forums and more.
</description> </website>

Допустим, вы хотите преобразовать bookmarks.xml и вывести его содержимое в формате, совместимом с форматом браузера вашего компьютера. Программа, приведенная в листинге 14.3, преобразует файл к нужному формату.

Листинг 14.3. Преобразование XML в HTML

Class XMLHTML {
  VAR $xmlparser: VAR $tagcolor ="#800000";
  VAR $datacolor ="#0000ff";

  function XMLHTML() {
    $this->xmlparser = xml_parser_create();
    xml_set_object($this->xmlparser. &$this); 
    xml_set_element_handler($this->xmlparser, "startTag", "endTag"); 
    xml_set_character_data_handler($this->xmlparser, "characterData");
  }

  // Функция отвечает за обработку всех открывающих тегов.
  function startTag($parser, $tagname, $attributes) {
    GLOBAL $tagcolor;
    print "<font size=\"-2\" color=\"$this->tagcolor\" face=\"arial, 
           verdana\ ">&1 t ; $tagname&gt ; </f ont> <br>" 
  }

  // Функция отвечает за обработку всех символьных данных.
  function characterData($parser. $characterData) {
    GLOBAL $datacplor;
    print "<font size=\"-2\" color=\"$this->datacolor\" face=\"arial,
           verdana\ ">&nbsp; &nbsp; &nbsp; 
    $characterData</font> <br>";
  }

  // Функция отвечает за обработку всех закрывающих тегов.
  function endTag(Sparser, $tagname) {
    GLOBAL Stagcolor;
    print "<font size=\"-2\" color=\"$this->tagcolor\" face=\"arial, 
           verdana\">&lt;/ 
    $tagname&gt;</font> <br>";
  }

  function.parse($fp) {
    // xml_parse($this->xm1parser,$data);
    // Обработать файл XML
    while( $line = fread($fp. 4096) ) :

      // При возникновении ошибки прервать обработку
      // и вывести сообщение об ошибке.
      if( ! xml_parse($this->xmlparser, $line, feof($fp))) :
        die(sprintf("XML error: %s at line %d", 
        xml_error_sthng(xml_get_error_code($this->xmlparser)), 
        xml_get_curren_line_number($this->xml parser))); 
      endif;
    endwhile;
  }
}

// Открыть файл XML для обработки 
$xml_file = "bookmarks. xml"; 
$fp = f open($xml_flie, "r");

// Создать новый объект 
$xml_parser = new XMLHTML;

// Обработать $xml_file 
$xml_parser->parse($fp);
?>

В результате преобразования файл bookmarks.xml выводится в браузере в следующем виде:

<WEBSITE> 
<TITLE>
Epicurious 
</TITLE> 
<URL>
http://www.epicurious.com 
</URL>
<DESCRIPTION>
Epicurious is a great online cooking resource,
providing tutorials, recipes, forums and more. 
</DESCRIPTION> 
</WEBSITE>

Конечно, результат не такой уж впечатляющий — мы всего лишь добились, чтобы файл XML отображался в браузере. Внеся небольшие изменения в листинг 14.3, можно преобразовать URL в работающие гиперссылки, оформить данные между парой тегов <TITLE>...</TITLE> жирным шрифтом и т.д. Как видно из листинга 14.3, я использую шрифт двух разных цветов, чтобы продемонстрировать возможность форматирования текста в браузере.

Назад | Содержание раздела | Общее Содержание | Вперед



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru