Source for file GRDDLParser.php

Documentation is available at GRDDLParser.php

  1. <?php
  2. // ----------------------------------------------------------------------------------
  3. // Class: RdfParser
  4. // ----------------------------------------------------------------------------------
  5.  
  6.  
  7. /**
  8.  * A GRDDLParser.
  9.  * This class extracts rdf data from xhtml documents. It uses the PHP xsltprocessor.
  10.  * Gleaning Resource Descriptions from Dialects of Languages (GRDDL):
  11.  * (http://www.w3.org/TR/grddl/)
  12.  * 
  13.  * @version  $Id: fsource_syntax__syntaxGRDDLParser.php.html 443 2007-06-01 16:25:38Z cax $
  14.  * @author Tobias Gauß <tobias.gauss@web.de>,
  15.  *
  16.  * @package syntax
  17.  * @access    public
  18.  *
  19.  */   
  20. class GRDDLParser extends Object{
  21.     
  22.     
  23.     /**
  24.      * Document link
  25.      * 
  26.      *
  27.      * @var     String 
  28.      * @access    private
  29.      */
  30.     var $doclink;
  31.     
  32.     
  33.     /**
  34.      * Stylesheet link
  35.      * 
  36.      *
  37.      * @var     String[] 
  38.      * @access    private
  39.      */
  40.     var $stylelinks;
  41.     
  42.     
  43.     /**
  44.      * DomDocument
  45.      * 
  46.      * @var     DomDocument 
  47.      * @access    private
  48.      */
  49.     var $domdoc;
  50.     
  51.     
  52.     /**
  53.     * generates a MemModel and creates the DomDocument.
  54.     *
  55.     * @param String $doc 
  56.     * @access public
  57.     * @return MemModel $model
  58.     */
  59.     function generateModel($doc){
  60.         $model new MemModel();
  61.         $this->doclink=$doc;
  62.         $this->domdoc new DomDocument
  63.         $this->domdoc->load($doc);
  64.         $this->_getStyles();
  65.         $model $this->_generateRDF();
  66.         return $model;
  67.     }
  68.     
  69.  
  70.     /**
  71.     * gets the used xsl stylesheets.
  72.     *
  73.     * @access private
  74.     */
  75.     function _getStyles(){
  76.         $link=$this->domdoc->getElementsByTagName('link');
  77.         $i=0;
  78.         while($link->item($i)!=''){
  79.             $item $link->item($i);
  80.             if($item->getAttributeNode('rel')->value=='transformation'){
  81.                 $temp $item->getAttributeNode('href')->value;
  82.                 if(substr($temp,0,1)=='/'){
  83.                     $pos strrpos($this->doclink,'/');
  84.                     $part substr($this->doclink,0,$pos);
  85.                     $this->stylelink[]=$part.$temp;
  86.                 }else{
  87.                     $this->stylelink[]=$temp;
  88.                 }
  89.             }
  90.             $i++;
  91.         }
  92.     }
  93.     
  94.     /*
  95.     * uses the PHP build in xslt processor to
  96.     * generate the RDF statements and uses the 
  97.     * RDF- Parser to generate the model
  98.     *
  99.     * @access private
  100.     * @return MemModel $model
  101.     */
  102.     function _generateRDF(){
  103.         $model=new MemModel();
  104.         $model->setBaseURI($this->doclink);
  105.         $proc new xsltprocessor;
  106.         include_once(RDFAPI_INCLUDE_DIR.PACKAGE_SYNTAX_RDF);
  107.         $pars=new RdfParser();
  108.         foreach($this->stylelink as $key => $value){
  109.             $xsl new DomDocument;
  110.             $xsl->load($value);
  111.             $proc->importStyleSheet($xsl);
  112.             $model->addModel($pars->generateModel($proc->transformToXML($this->domdoc),$this->doclink));
  113.         }
  114.         return $model;
  115.     }
  116.  
  117.     
  118.     
  119. }
  120. ?>

Documentation generated on Fri, 1 Jun 2007 16:49:16 +0200 by phpDocumentor 1.3.2