SAX Parser : SAX : XML PHP Source Code


PHP Source Code » XML » SAX »

 

SAX Parser


navioo_quotes.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<quotes>
  <quote year="1991">
    <phrase>Hasta la vista, baby!</phrase>
    <author>Arnold Schwarzenegger</author>
  </quote>
  <quote year="2000">
    <phrase>This race is as tight as the rusted lug nuts on a '55 Ford.</phrase>
    <author>Dan Rather</author>
  </quote>
  <quote year="2004">
    <phrase>This race is hotter than a Times Square Rolex.</phrase>
    <author>Dan Rather</author>
  </quote>
</quotes>


sax parser 
<?php
  
function sax_start($sax$tag$attr) {
    if (
$tag == 'quotes') {
      echo 
'<ul>';
    } elseif (
$tag == 'quote') {
      echo 
'<li>' htmlspecialchars($attr['year']) . ': ';
    } elseif (
$tag == 'phrase') {
      echo 
'"';
    } elseif (
$tag == 'author') {
      echo 
' (';
    }
  }
  function 
sax_end($sax$tag) {
    if (
$tag == 'quotes') {
      echo 
'</ul>';
    } elseif (
$tag == 'quote') {
      echo 
'</li>';
    } elseif (
$tag == 'phrase') {
      echo 
'"';
    } elseif (
$tag == 'author') {
      echo 
') ';
    }
  }
  function 
sax_cdata($sax$data) {
    echo 
htmlspecialchars($data);
  }

  
$sax xml_parser_create();
  
xml_parser_set_option($saxXML_OPTION_CASE_FOLDINGfalse);
  
xml_parser_set_option($saxXML_OPTION_SKIP_WHITEtrue);
  
xml_set_element_handler($sax'sax_start''sax_end');
  
xml_set_character_data_handler($sax'sax_cdata');
  
xml_parse($saxfile_get_contents('navioo_quotes.xml'), true);
  
xml_parser_free($sax);
?>


HTML code for linking to this page:

Follow Navioo On Twitter

PHP Source Code

 Navioo XML
» SAX