<?php
function getmicrotime() {
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
$time_start = getmicrotime();
$root = $_SERVER['DOCUMENT_ROOT'];
$path[] = $root.'/PEAR';
$path[] = $root.'/myXML';
if (substr(PHP_OS, 0, 3) == 'WIN') {
$searchPath = implode(';', $path).';';
} else {
$searchPath = implode(':', $path).':';
}
// Set the search path.
ini_set('include_path', $searchPath);
require_once('XML_Preprocessor.php');
require_once('myDOM/myDOM.php');
require_once('myXPath/myXPath.php');
require_once('myXSLT/myXSLT.php');
PEAR::setErrorHandling(PEAR_ERROR_RETURN, E_USER_ERROR);
// Create new DOM documents for input, output and stylesheet data.
$oDocument = new Document;
$oStylesheet = new Document;
$oOutDocument = new Document;
// Create object of class XML_Preprocessor.
$oXml = XML_Preprocessor::create(&$oDocument);
// As in a file sample.xml is used PHP code, for its parsing the object of class
// XML_Preprocessor will be used.
$oXml->parseFile('sample.xml');
// Use of a new features.
$xmlData = "
<book id='10'>
<title><b>New features in myDOM</b> (see manual)</title>
<author><i>Tereshchenko Andrey</i> ;~)</author>
<price>0.00</price>
</book>";
$oDocument->documentElement->parse($xmlData);
// For parse of sample.xsl file we use a method of the DOM document parseFile().
$oStylesheet->parseFile('sample.xsl');
// Create object myXPath.
$oXPath =& myXPath::create(&$oDocument);
// Select any "book" nodes.
$nodeSet = $oXPath->evaluate('//book');
$length = sizeof($nodeSet);
for ($i = 0; $i < $length; $i++) {
$node =& $nodeSet[$i];
// Add child element "date"
$date =& $oDocument->createElement('date');
$text =& $oDocument->createTextNode(date("d M Y", time()));
$date->appendChild(&$text);
$node->appendChild(&$date);
}
// Create object myXSLT.
$oXSLT = myXSLT::create(&$oDocument, &$oOutDocument, &$oStylesheet, &$oXPath);
// Start translating.
$oXSLT->translate();
// For display of the document now it is possible to use a method toString()
// instead of object Output.
$oOutDocument->setOption('indent', true);
print $oOutDocument->toString();
$time_end = getmicrotime();
$time = $time_end - $time_start;
print("<br>Time: $time s.");
?>
|