Htaccess    html   Php    javascript   Asp   css    maths  Past Questions  Practice Tests Online

xslt set sax handlers function syntax tag tutorial 2013





Alert! Connect with 10,000 Chating Online. Join Now

Php xslt set sax handlers () function

Write your php code

 
<?php ?>

Php Result


Your code below



(PHP 4 >= 4.0.6)

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

Syntax

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.

Note: 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.

Examples

Example 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.

Example 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 xslt set sax handlers Function syntax tag

xslt set sax handlers php code on this is provided for your study purpose, it will guide you to know how create and design a website using php. use it to practice and train your self online



Php xslt set sax handlers syntax tutorial

php tutorial guide and code design are for easy learning and programming. The code practice section provided at the top is for practising of this syntax. Use the code section up to practice your php programming online. Learning php is very easy, all you need is to use the examples on this site and practice them to perfect your skills.


Function index

Variables

Expressions

Operators

Control-Structures

Cookies

Array

Date & Time

Directory function

File

Image

Operators

Form data handling

Mathematics operators

Mail

Php Mysql

Network Functions

Strings

php tutorial guides,functions, classes, code examples and tags for creating simple dynamic site to mysql database driven sites
 
 
Htaccess    html   Php    javascript   Asp   css    maths  Past Questions  Practice Tests Online