PHP-Fusion
v.7.01
AP-Fusion
v7.02.05
Pimped-Fusion-AP
v0.09.03
April 19 2024 13:54:16
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Мини-чат
Вы должны авторизироваться, чтобы добавить сообщение.

lom
06/04/2018 14:03
Мы рады, ждем девятку. Очень хочется пощупать

Alipapa
27/03/2018 22:16
Всем привет, все неисправности устранили, всё у нас работает

mukaton
30/10/2015 02:37
Не получается ничего скачать. Ошибка Not Found

Alipapa
06/10/2015 23:00
9-я версия php-fusion на подходе, следите за новостями

Alipapa
10/11/2014 11:24
Заметь, я дважды ответил через 3 минуты после вопроса, могли бы уже решить

Последние статьи
· О стабилизаторах нап...
· СМС и Вебмани
· TinyMCE для пользова...
· PCRE (Perl Compatibl...
· PCRE (Perl Compatibl...
Последние активные темы форума
  Темы Просмотров Ответов Последние сообщения
PHP-Fusion 7 Bogatyr - бесп...
Моды, плагины
7133 1 Vveb--ws
08-10-2018 16:47
Php-Fusion v9. Первые впеча...
Вопросы по работе
4506 3 Vveb--ws
25-07-2018 13:46
Появился хэлп по PHP-Fusion...
Вопросы по работе
6735 7 Vveb--ws
25-07-2018 13:42
prestashop&ap-fusion
Вопросы по работе
17341 61 Alipapa
26-08-2014 10:29
Плагин магазина Ap-Shop
Моды, плагины
14586 70 Alipapa
18-08-2014 18:14
TinyMCE
Вопросы по работе
21100 55 Alipapa
27-07-2013 21:57
HTML-5
Моды, плагины
5431 1 Alipapa
15-06-2013 19:47
Мультиязычность в Pimped-Fu...
Ошибки, баги, глюки
6259 4 Papich
16-04-2013 12:39
Pimped-Fusion. Первые впеча...
Ошибки, баги, глюки
21694 127 Alipapa
18-12-2012 10:59
Ищу мод для расстановки код...
Моды, плагины
14999 55 Alipapa
17-09-2012 14:00
Как присоединить файл к лич...
Моды, плагины
8259 3 lom
27-05-2012 18:12
Что мне не нравится в после...
Вопросы по работе
6846 4 Alipapa
27-05-2012 18:08
Проблемы с добавлением кате...
Вопросы по работе
7740 5 Alipapa
27-05-2012 18:06

xslt_set_sax_handlers

(PHP 4 >= 4.0.6)

xslt_set_sax_handlers --  Set the SAX handlers to be called when the XML document gets processed

Description

void xslt_set_sax_handlers ( resource processor, array handlers )

xslt_set_sax_handlers() registers the SAX handlers for the document, given a XSLT processor resource.

handlers should be an array in the following format:

<?php

$handlers
= array(

  
"document" => array(
    
"start_doc" ,
    
"end_doc" ),

  
"element"   => array(
    
"start_element" ,
    
"end_element" ),

  
"namespace" => array(
    
"start_namespace" ,
    
"end_namespace" ),

  
"comment"    => "comment" ,

  
"pi"         => "pi" ,

  
"character" => "characters"

);
?>

Where the functions follow the syntax described for the scheme handler functions.

Замечание: The given array does not need to contain all of the different sax handler elements (although it can), but it only needs to conform to "handler" => "function" format described above.

Each of the individual SAX handler functions are in the format below:

  • start_doc ( resource processor )

  • end_doc ( resource processor )

  • start_element ( resource processor, string name, array attributes )

  • end_element ( resource processor, string name )

  • start_namespace ( resource processor, string prefix, string uri )

  • end_namespace ( resource processor, string prefix )

  • comment ( resource processor, string contents )

  • pi ( resource processor, string target, string contents )

  • characters ( resource processor, string contents )

Using xslt_set_sax_handlers() doesn't look very different than running a SAX parser like xml_parse() on the result of an xslt_process() transformation.

Примеры

Пример 1. xslt_set_sax_handlers() Example

<?php
// From ohlesbeauxjours at yahoo dot fr
// Here's a simple example that applies strtoupper() on
// the content of every <auteur> tag and then displays the
// resulting XML tree:

$xml = '<?xml version="1.0"?>
<books>
<book>
  <title>Mme Bovary</title>
  <author>Gustave Flaubert</author>
</book>
<book>
  <title>Mrs Dalloway</title>
  <author>Virginia Woolf</author>
</book>
</books>'
;

$xsl = '<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="ISO-8859-1" indent="no" omit-xml-declaration="yes"/>
<xsl:template match="/">
<xsl:for-each select="books/book">
  <livre>
   <auteur><xsl:value-of select="author/text()"/></auteur>
  </livre>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>'
;

// Handlers :
function start_document ()
{
  
// start reading the document
}

function
end_document ()
{
  
// end reading the document
}

function
start_element ( $parser , $name , $attributes )
{
  global
$result , $tag ;
  
$result .= "<" . $name . ">" ;
  
$tag = $name ;
}

function
end_element ( $parser , $name )
{
  global
$result ;
  
$result .= "</" . $name . ">" ;
}

function
characters ( $parser , $data )
{
  global
$result , $tag ;
  if (
$tag == "auteur" ) {
    
$data = strtoupper ( $data );
  }
  
$result .= $data ;
}

// Transformation :
$xh = xslt_create ();
$handlers = array( "document" => array( "start_document" , "end_document" ),
   
"element" => array( "start_element" , "end_element" ),
   
"character" => "characters" );

xslt_set_sax_handlers ( $xh , $handlers );
xslt_process ( $xh , 'arg:/_xml' , 'arg:/_xsl' , NULL , array( "/_xml" => $xml , "/_xsl" => $xsl ));
xslt_free ( $xh );
?>

You can also use xslt_set_object() if you want to implement your handlers in an object.

Пример 2. Object oriented handler

<?php
// This is the object oriented version of the previous example
class data_sax_handler {

  var
$buffer , $tag , $attrs ;

  var
$_xh ;

  function
data_sax_handler ( $xml , $xsl )
  {
      
// our xslt resource
      
$this -> _xh = xslt_create ();

      
xslt_set_object ( $this -> _xs , $this );

      
// configure sax handlers
      
$handlers = array(
        
"document" => array( 'start_document' , 'end_document' ),
        
"element" => array( 'start_element' , 'end_element' ),
        
"character" => 'characters'
      
);

      
xslt_set_sax_handlers ( $this -> _xh , $handlers );
    
      
xslt_process ( $this -> _xh , 'arg:/_xml' , 'arg:/_xsl' , NULL , array( "/_xml" => $xml , "/_xsl" => $xsl ));
      
xslt_free ( $this -> _xh );


  }

  function
start_document ()
  {
        
// start reading the document
  
}

  function
end_document () {
        
// complete reading the document
  
}

  function
start_element ( $parser , $name , $attributes ) {
        
$this -> tag = $name ;
        
$this -> buffer .= "<" . $name . ">" ;
        
$this -> attrs = $attributes ;
  }

  function
end_element ( $parser , $name )
  {
        
$this -> tag = '' ;
        
$this -> buffer .= "</" . $name . ">" ;
  }

  function
characters ( $parser , $data )
  {
    if (
$this -> tag == 'auteur' ) {
          
$data = strtoupper ( $data );
    }
    
$this -> buffer .= $data ;
  }
  
  function
get_buffer () {
    return
$this -> buffer ;
  }

}

$exec = new data_sax_handler ( $xml , $xsl );

?>

Both examples will output:

<livre>
   <auteur>GUSTAVE FLAUBERT</auteur>
</livre>
<livre>
   <auteur>VIRGINIA WOOLF</auteur>
</livre>
Все функции PHP:
Навигация
· Новости
· Статьи
· Скачать
· Форум
· Ссылки
· Категории новостей
· Обратная связь
· Галерея
· Поиск
· CMS AP-Fusion. Отличия от PHP-Fusion
· Javascript справочник
· Техника
Сейчас на сайте
· Гостей: 1

· Пользователей: 0

· Всего пользователей: 453
· Новый пользователь: ZDA
Информеры
Загрузка файлов  +  -
9,934,914 уникальных посетителей Iceberg by Harly