]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/CasAuthentication/extlib/CAS/domxml-php4-php5.php
Update line endings
[quix0rs-gnu-social.git] / plugins / CasAuthentication / extlib / CAS / domxml-php4-php5.php
index d64747514c3034d8210b9e8f4c7656c42461a8bc..a0dfb99c7ac815ebbf6f92e47f517e57f7e104c1 100644 (file)
-<?php\r
-/**\r
- * @file domxml-php4-php5.php\r
- * Require PHP5, uses built-in DOM extension.\r
- * To be used in PHP4 scripts using DOMXML extension.\r
- * Allows PHP4/DOMXML scripts to run on PHP5/DOM.\r
- * (Requires PHP5/XSL extension for domxml_xslt functions)\r
- *\r
- * Typical use:\r
- * <pre>\r
- * {\r
- *  if (version_compare(PHP_VERSION,'5','>='))\r
- *   require_once('domxml-php4-to-php5.php');\r
- * }\r
- * </pre>\r
- *\r
- * Version 1.5.5, 2005-01-18, http://alexandre.alapetite.net/doc-alex/domxml-php4-php5/\r
- *\r
- * ------------------------------------------------------------------<br>\r
- * Written by Alexandre Alapetite, http://alexandre.alapetite.net/cv/\r
- *\r
- * Copyright 2004, Licence: Creative Commons "Attribution-ShareAlike 2.0 France" BY-SA (FR),\r
- * http://creativecommons.org/licenses/by-sa/2.0/fr/\r
- * http://alexandre.alapetite.net/divers/apropos/#by-sa\r
- * - Attribution. You must give the original author credit\r
- * - Share Alike. If you alter, transform, or build upon this work,\r
- *   you may distribute the resulting work only under a license identical to this one\r
- * - The French law is authoritative\r
- * - Any of these conditions can be waived if you get permission from Alexandre Alapetite\r
- * - Please send to Alexandre Alapetite the modifications you make,\r
- *   in order to improve this file for the benefit of everybody\r
- *\r
- * If you want to distribute this code, please do it as a link to:\r
- * http://alexandre.alapetite.net/doc-alex/domxml-php4-php5/\r
- */\r
-\r
-function domxml_new_doc($version) {return new php4DOMDocument('');}\r
-function domxml_open_file($filename) {return new php4DOMDocument($filename);}\r
-function domxml_open_mem($str)\r
-{\r
- $dom=new php4DOMDocument('');\r
- $dom->myDOMNode->loadXML($str);\r
- return $dom;\r
-}\r
-function xpath_eval($xpath_context,$eval_str,$contextnode=null) {return $xpath_context->query($eval_str,$contextnode);}\r
-function xpath_new_context($dom_document) {return new php4DOMXPath($dom_document);}\r
-\r
-class php4DOMAttr extends php4DOMNode\r
-{\r
- function php4DOMAttr($aDOMAttr) {$this->myDOMNode=$aDOMAttr;}\r
- function Name() {return $this->myDOMNode->name;}\r
- function Specified() {return $this->myDOMNode->specified;}\r
- function Value() {return $this->myDOMNode->value;}\r
-}\r
-\r
-class php4DOMDocument extends php4DOMNode\r
-{\r
- function php4DOMDocument($filename='')\r
- {\r
-  $this->myDOMNode=new DOMDocument();\r
-  if ($filename!='') $this->myDOMNode->load($filename);\r
- }\r
- function create_attribute($name,$value)\r
- {\r
-  $myAttr=$this->myDOMNode->createAttribute($name);\r
-  $myAttr->value=$value;\r
-  return new php4DOMAttr($myAttr,$this);\r
- }\r
- function create_cdata_section($content) {return new php4DOMNode($this->myDOMNode->createCDATASection($content),$this);}\r
- function create_comment($data) {return new php4DOMNode($this->myDOMNode->createComment($data),$this);}\r
- function create_element($name) {return new php4DOMElement($this->myDOMNode->createElement($name),$this);}\r
- function create_text_node($content) {return new php4DOMNode($this->myDOMNode->createTextNode($content),$this);}\r
- function document_element() {return new php4DOMElement($this->myDOMNode->documentElement,$this);}\r
- function dump_file($filename,$compressionmode=false,$format=false) {return $this->myDOMNode->save($filename);}\r
- function dump_mem($format=false,$encoding=false) {return $this->myDOMNode->saveXML();}\r
- function get_element_by_id($id) {return new php4DOMElement($this->myDOMNode->getElementById($id),$this);}\r
- function get_elements_by_tagname($name)\r
- {\r
-  $myDOMNodeList=$this->myDOMNode->getElementsByTagName($name);\r
-  $nodeSet=array();\r
-  $i=0;\r
-  if (isset($myDOMNodeList))\r
-   while ($node=$myDOMNodeList->item($i))\r
-   {\r
-    $nodeSet[]=new php4DOMElement($node,$this);\r
-    $i++;\r
-   }\r
-  return $nodeSet;\r
- }\r
- function html_dump_mem() {return $this->myDOMNode->saveHTML();}\r
- function root() {return new php4DOMElement($this->myDOMNode->documentElement,$this);}\r
-}\r
-\r
-class php4DOMElement extends php4DOMNode\r
-{\r
- function get_attribute($name) {return $this->myDOMNode->getAttribute($name);}\r
- function get_elements_by_tagname($name)\r
- {\r
-  $myDOMNodeList=$this->myDOMNode->getElementsByTagName($name);\r
-  $nodeSet=array();\r
-  $i=0;\r
-  if (isset($myDOMNodeList))\r
-   while ($node=$myDOMNodeList->item($i))\r
-   {\r
-    $nodeSet[]=new php4DOMElement($node,$this->myOwnerDocument);\r
-    $i++;\r
-   }\r
-  return $nodeSet;\r
- }\r
- function has_attribute($name) {return $this->myDOMNode->hasAttribute($name);}\r
- function remove_attribute($name) {return $this->myDOMNode->removeAttribute($name);}\r
- function set_attribute($name,$value) {return $this->myDOMNode->setAttribute($name,$value);}\r
- function tagname() {return $this->myDOMNode->tagName;}\r
-}\r
-\r
-class php4DOMNode\r
-{\r
- var $myDOMNode;\r
- var $myOwnerDocument;\r
- function php4DOMNode($aDomNode,$aOwnerDocument)\r
- {\r
-  $this->myDOMNode=$aDomNode;\r
-  $this->myOwnerDocument=$aOwnerDocument;\r
- }\r
- function __get($name)\r
- {\r
-  if ($name=='type') return $this->myDOMNode->nodeType;\r
-  elseif ($name=='tagname') return $this->myDOMNode->tagName;\r
-  elseif ($name=='content') return $this->myDOMNode->textContent;\r
-  else\r
-  {\r
-   $myErrors=debug_backtrace();\r
-   trigger_error('Undefined property: '.get_class($this).'::$'.$name.' ['.$myErrors[0]['file'].':'.$myErrors[0]['line'].']',E_USER_NOTICE);\r
-   return false;\r
-  }\r
- }\r
- function append_child($newnode) {return new php4DOMElement($this->myDOMNode->appendChild($newnode->myDOMNode),$this->myOwnerDocument);}\r
- function append_sibling($newnode) {return new php4DOMElement($this->myDOMNode->parentNode->appendChild($newnode->myDOMNode),$this->myOwnerDocument);}\r
- function attributes()\r
- {\r
-  $myDOMNodeList=$this->myDOMNode->attributes;\r
-  $nodeSet=array();\r
-  $i=0;\r
-  if (isset($myDOMNodeList))\r
-   while ($node=$myDOMNodeList->item($i))\r
-   {\r
-    $nodeSet[]=new php4DOMAttr($node,$this->myOwnerDocument);\r
-    $i++;\r
-   }\r
-  return $nodeSet;\r
- }\r
- function child_nodes()\r
- {\r
-  $myDOMNodeList=$this->myDOMNode->childNodes;\r
-  $nodeSet=array();\r
-  $i=0;\r
-  if (isset($myDOMNodeList))\r
-   while ($node=$myDOMNodeList->item($i))\r
-   {\r
-    $nodeSet[]=new php4DOMElement($node,$this->myOwnerDocument);\r
-    $i++;\r
-   }\r
-  return $nodeSet;\r
- }\r
- function children() {return $this->child_nodes();}\r
- function clone_node($deep=false) {return new php4DOMElement($this->myDOMNode->cloneNode($deep),$this->myOwnerDocument);}\r
- function first_child() {return new php4DOMElement($this->myDOMNode->firstChild,$this->myOwnerDocument);}\r
- function get_content() {return $this->myDOMNode->textContent;}\r
- function has_attributes() {return $this->myDOMNode->hasAttributes();}\r
- function has_child_nodes() {return $this->myDOMNode->hasChildNodes();}\r
- function insert_before($newnode,$refnode) {return new php4DOMElement($this->myDOMNode->insertBefore($newnode->myDOMNode,$refnode->myDOMNode),$this->myOwnerDocument);}\r
- function is_blank_node()\r
- {\r
-  $myDOMNodeList=$this->myDOMNode->childNodes;\r
-  $i=0;\r
-  if (isset($myDOMNodeList))\r
-   while ($node=$myDOMNodeList->item($i))\r
-   {\r
-    if (($node->nodeType==XML_ELEMENT_NODE)||\r
-        (($node->nodeType==XML_TEXT_NODE)&&!ereg('^([[:cntrl:]]|[[:space:]])*$',$node->nodeValue)))\r
-     return false;\r
-    $i++;\r
-   }\r
-  return true;\r
- }\r
- function last_child() {return new php4DOMElement($this->myDOMNode->lastChild,$this->myOwnerDocument);}\r
- function new_child($name,$content)\r
- {\r
-  $mySubNode=$this->myDOMNode->ownerDocument->createElement($name);\r
-  $mySubNode->appendChild($this->myDOMNode->ownerDocument->createTextNode($content));\r
-  $this->myDOMNode->appendChild($mySubNode);\r
-  return new php4DOMElement($mySubNode,$this->myOwnerDocument);\r
- }\r
- function next_sibling() {return new php4DOMElement($this->myDOMNode->nextSibling,$this->myOwnerDocument);}\r
- function node_name() {return $this->myDOMNode->localName;}\r
- function node_type() {return $this->myDOMNode->nodeType;}\r
- function node_value() {return $this->myDOMNode->nodeValue;}\r
- function owner_document() {return $this->myOwnerDocument;}\r
- function parent_node() {return new php4DOMElement($this->myDOMNode->parentNode,$this->myOwnerDocument);}\r
- function prefix() {return $this->myDOMNode->prefix;}\r
- function previous_sibling() {return new php4DOMElement($this->myDOMNode->previousSibling,$this->myOwnerDocument);}\r
- function remove_child($oldchild) {return new php4DOMElement($this->myDOMNode->removeChild($oldchild->myDOMNode),$this->myOwnerDocument);}\r
- function replace_child($oldnode,$newnode) {return new php4DOMElement($this->myDOMNode->replaceChild($oldnode->myDOMNode,$newnode->myDOMNode),$this->myOwnerDocument);}\r
- function set_content($text)\r
- {\r
-  if (($this->myDOMNode->hasChildNodes())&&($this->myDOMNode->firstChild->nodeType==XML_TEXT_NODE))\r
-   $this->myDOMNode->removeChild($this->myDOMNode->firstChild);\r
-  return $this->myDOMNode->appendChild($this->myDOMNode->ownerDocument->createTextNode($text));\r
- }\r
-}\r
-\r
-class php4DOMNodelist\r
-{\r
- var $myDOMNodelist;\r
- var $nodeset;\r
- function php4DOMNodelist($aDOMNodelist,$aOwnerDocument)\r
- {\r
-  $this->myDOMNodelist=$aDOMNodelist;\r
-  $this->nodeset=array();\r
-  $i=0;\r
-  if (isset($this->myDOMNodelist))\r
-   while ($node=$this->myDOMNodelist->item($i))\r
-   {\r
-    $this->nodeset[]=new php4DOMElement($node,$aOwnerDocument);\r
-    $i++;\r
-   }\r
- }\r
-}\r
-\r
-class php4DOMXPath\r
-{\r
- var $myDOMXPath;\r
- var $myOwnerDocument;\r
- function php4DOMXPath($dom_document)\r
- {\r
-  $this->myOwnerDocument=$dom_document;\r
-  $this->myDOMXPath=new DOMXPath($dom_document->myDOMNode);\r
- }\r
- function query($eval_str,$contextnode)\r
- {\r
-  if (isset($contextnode)) return new php4DOMNodelist($this->myDOMXPath->query($eval_str,$contextnode->myDOMNode),$this->myOwnerDocument);\r
-  else return new php4DOMNodelist($this->myDOMXPath->query($eval_str),$this->myOwnerDocument);\r
- }\r
- function xpath_register_ns($prefix,$namespaceURI) {return $this->myDOMXPath->registerNamespace($prefix,$namespaceURI);}\r
-}\r
-\r
-if (extension_loaded('xsl'))\r
-{//See also: http://alexandre.alapetite.net/doc-alex/xslt-php4-php5/\r
- function domxml_xslt_stylesheet($xslstring) {return new php4DomXsltStylesheet(DOMDocument::loadXML($xslstring));}\r
- function domxml_xslt_stylesheet_doc($dom_document) {return new php4DomXsltStylesheet($dom_document);}\r
- function domxml_xslt_stylesheet_file($xslfile) {return new php4DomXsltStylesheet(DOMDocument::load($xslfile));}\r
- class php4DomXsltStylesheet\r
- {\r
-  var $myxsltProcessor;\r
-  function php4DomXsltStylesheet($dom_document)\r
-  {\r
-   $this->myxsltProcessor=new xsltProcessor();\r
-   $this->myxsltProcessor->importStyleSheet($dom_document);\r
-  }\r
-  function process($dom_document,$xslt_parameters=array(),$param_is_xpath=false)\r
-  {\r
-   foreach ($xslt_parameters as $param=>$value)\r
-    $this->myxsltProcessor->setParameter('',$param,$value);\r
-   $myphp4DOMDocument=new php4DOMDocument();\r
-   $myphp4DOMDocument->myDOMNode=$this->myxsltProcessor->transformToDoc($dom_document->myDOMNode);\r
-   return $myphp4DOMDocument;\r
-  }\r
-  function result_dump_file($dom_document,$filename)\r
-  {\r
-   $html=$dom_document->myDOMNode->saveHTML();\r
-   file_put_contents($filename,$html);\r
-   return $html;\r
-  }\r
-  function result_dump_mem($dom_document) {return $dom_document->myDOMNode->saveHTML();}\r
- }\r
-}\r
+<?php
+/**
+ * @file domxml-php4-php5.php
+ * Require PHP5, uses built-in DOM extension.
+ * To be used in PHP4 scripts using DOMXML extension.
+ * Allows PHP4/DOMXML scripts to run on PHP5/DOM.
+ * (Requires PHP5/XSL extension for domxml_xslt functions)
+ *
+ * Typical use:
+ * <pre>
+ * {
+ *  if (version_compare(PHP_VERSION,'5','>='))
+ *   require_once('domxml-php4-to-php5.php');
+ * }
+ * </pre>
+ *
+ * Version 1.5.5, 2005-01-18, http://alexandre.alapetite.net/doc-alex/domxml-php4-php5/
+ *
+ * ------------------------------------------------------------------<br>
+ * Written by Alexandre Alapetite, http://alexandre.alapetite.net/cv/
+ *
+ * Copyright 2004, Licence: Creative Commons "Attribution-ShareAlike 2.0 France" BY-SA (FR),
+ * http://creativecommons.org/licenses/by-sa/2.0/fr/
+ * http://alexandre.alapetite.net/divers/apropos/#by-sa
+ * - Attribution. You must give the original author credit
+ * - Share Alike. If you alter, transform, or build upon this work,
+ *   you may distribute the resulting work only under a license identical to this one
+ * - The French law is authoritative
+ * - Any of these conditions can be waived if you get permission from Alexandre Alapetite
+ * - Please send to Alexandre Alapetite the modifications you make,
+ *   in order to improve this file for the benefit of everybody
+ *
+ * If you want to distribute this code, please do it as a link to:
+ * http://alexandre.alapetite.net/doc-alex/domxml-php4-php5/
+ */
+
+function domxml_new_doc($version) {return new php4DOMDocument('');}
+function domxml_open_file($filename) {return new php4DOMDocument($filename);}
+function domxml_open_mem($str)
+{
+ $dom=new php4DOMDocument('');
+ $dom->myDOMNode->loadXML($str);
+ return $dom;
+}
+function xpath_eval($xpath_context,$eval_str,$contextnode=null) {return $xpath_context->query($eval_str,$contextnode);}
+function xpath_new_context($dom_document) {return new php4DOMXPath($dom_document);}
+
+class php4DOMAttr extends php4DOMNode
+{
+ function php4DOMAttr($aDOMAttr) {$this->myDOMNode=$aDOMAttr;}
+ function Name() {return $this->myDOMNode->name;}
+ function Specified() {return $this->myDOMNode->specified;}
+ function Value() {return $this->myDOMNode->value;}
+}
+
+class php4DOMDocument extends php4DOMNode
+{
+ function php4DOMDocument($filename='')
+ {
+  $this->myDOMNode=new DOMDocument();
+  if ($filename!='') $this->myDOMNode->load($filename);
+ }
+ function create_attribute($name,$value)
+ {
+  $myAttr=$this->myDOMNode->createAttribute($name);
+  $myAttr->value=$value;
+  return new php4DOMAttr($myAttr,$this);
+ }
+ function create_cdata_section($content) {return new php4DOMNode($this->myDOMNode->createCDATASection($content),$this);}
+ function create_comment($data) {return new php4DOMNode($this->myDOMNode->createComment($data),$this);}
+ function create_element($name) {return new php4DOMElement($this->myDOMNode->createElement($name),$this);}
+ function create_text_node($content) {return new php4DOMNode($this->myDOMNode->createTextNode($content),$this);}
+ function document_element() {return new php4DOMElement($this->myDOMNode->documentElement,$this);}
+ function dump_file($filename,$compressionmode=false,$format=false) {return $this->myDOMNode->save($filename);}
+ function dump_mem($format=false,$encoding=false) {return $this->myDOMNode->saveXML();}
+ function get_element_by_id($id) {return new php4DOMElement($this->myDOMNode->getElementById($id),$this);}
+ function get_elements_by_tagname($name)
+ {
+  $myDOMNodeList=$this->myDOMNode->getElementsByTagName($name);
+  $nodeSet=array();
+  $i=0;
+  if (isset($myDOMNodeList))
+   while ($node=$myDOMNodeList->item($i))
+   {
+    $nodeSet[]=new php4DOMElement($node,$this);
+    $i++;
+   }
+  return $nodeSet;
+ }
+ function html_dump_mem() {return $this->myDOMNode->saveHTML();}
+ function root() {return new php4DOMElement($this->myDOMNode->documentElement,$this);}
+}
+
+class php4DOMElement extends php4DOMNode
+{
+ function get_attribute($name) {return $this->myDOMNode->getAttribute($name);}
+ function get_elements_by_tagname($name)
+ {
+  $myDOMNodeList=$this->myDOMNode->getElementsByTagName($name);
+  $nodeSet=array();
+  $i=0;
+  if (isset($myDOMNodeList))
+   while ($node=$myDOMNodeList->item($i))
+   {
+    $nodeSet[]=new php4DOMElement($node,$this->myOwnerDocument);
+    $i++;
+   }
+  return $nodeSet;
+ }
+ function has_attribute($name) {return $this->myDOMNode->hasAttribute($name);}
+ function remove_attribute($name) {return $this->myDOMNode->removeAttribute($name);}
+ function set_attribute($name,$value) {return $this->myDOMNode->setAttribute($name,$value);}
+ function tagname() {return $this->myDOMNode->tagName;}
+}
+
+class php4DOMNode
+{
+ var $myDOMNode;
+ var $myOwnerDocument;
+ function php4DOMNode($aDomNode,$aOwnerDocument)
+ {
+  $this->myDOMNode=$aDomNode;
+  $this->myOwnerDocument=$aOwnerDocument;
+ }
+ function __get($name)
+ {
+  if ($name=='type') return $this->myDOMNode->nodeType;
+  elseif ($name=='tagname') return $this->myDOMNode->tagName;
+  elseif ($name=='content') return $this->myDOMNode->textContent;
+  else
+  {
+   $myErrors=debug_backtrace();
+   trigger_error('Undefined property: '.get_class($this).'::$'.$name.' ['.$myErrors[0]['file'].':'.$myErrors[0]['line'].']',E_USER_NOTICE);
+   return false;
+  }
+ }
+ function append_child($newnode) {return new php4DOMElement($this->myDOMNode->appendChild($newnode->myDOMNode),$this->myOwnerDocument);}
+ function append_sibling($newnode) {return new php4DOMElement($this->myDOMNode->parentNode->appendChild($newnode->myDOMNode),$this->myOwnerDocument);}
+ function attributes()
+ {
+  $myDOMNodeList=$this->myDOMNode->attributes;
+  $nodeSet=array();
+  $i=0;
+  if (isset($myDOMNodeList))
+   while ($node=$myDOMNodeList->item($i))
+   {
+    $nodeSet[]=new php4DOMAttr($node,$this->myOwnerDocument);
+    $i++;
+   }
+  return $nodeSet;
+ }
+ function child_nodes()
+ {
+  $myDOMNodeList=$this->myDOMNode->childNodes;
+  $nodeSet=array();
+  $i=0;
+  if (isset($myDOMNodeList))
+   while ($node=$myDOMNodeList->item($i))
+   {
+    $nodeSet[]=new php4DOMElement($node,$this->myOwnerDocument);
+    $i++;
+   }
+  return $nodeSet;
+ }
+ function children() {return $this->child_nodes();}
+ function clone_node($deep=false) {return new php4DOMElement($this->myDOMNode->cloneNode($deep),$this->myOwnerDocument);}
+ function first_child() {return new php4DOMElement($this->myDOMNode->firstChild,$this->myOwnerDocument);}
+ function get_content() {return $this->myDOMNode->textContent;}
+ function has_attributes() {return $this->myDOMNode->hasAttributes();}
+ function has_child_nodes() {return $this->myDOMNode->hasChildNodes();}
+ function insert_before($newnode,$refnode) {return new php4DOMElement($this->myDOMNode->insertBefore($newnode->myDOMNode,$refnode->myDOMNode),$this->myOwnerDocument);}
+ function is_blank_node()
+ {
+  $myDOMNodeList=$this->myDOMNode->childNodes;
+  $i=0;
+  if (isset($myDOMNodeList))
+   while ($node=$myDOMNodeList->item($i))
+   {
+    if (($node->nodeType==XML_ELEMENT_NODE)||
+        (($node->nodeType==XML_TEXT_NODE)&&!ereg('^([[:cntrl:]]|[[:space:]])*$',$node->nodeValue)))
+     return false;
+    $i++;
+   }
+  return true;
+ }
+ function last_child() {return new php4DOMElement($this->myDOMNode->lastChild,$this->myOwnerDocument);}
+ function new_child($name,$content)
+ {
+  $mySubNode=$this->myDOMNode->ownerDocument->createElement($name);
+  $mySubNode->appendChild($this->myDOMNode->ownerDocument->createTextNode($content));
+  $this->myDOMNode->appendChild($mySubNode);
+  return new php4DOMElement($mySubNode,$this->myOwnerDocument);
+ }
+ function next_sibling() {return new php4DOMElement($this->myDOMNode->nextSibling,$this->myOwnerDocument);}
+ function node_name() {return $this->myDOMNode->localName;}
+ function node_type() {return $this->myDOMNode->nodeType;}
+ function node_value() {return $this->myDOMNode->nodeValue;}
+ function owner_document() {return $this->myOwnerDocument;}
+ function parent_node() {return new php4DOMElement($this->myDOMNode->parentNode,$this->myOwnerDocument);}
+ function prefix() {return $this->myDOMNode->prefix;}
+ function previous_sibling() {return new php4DOMElement($this->myDOMNode->previousSibling,$this->myOwnerDocument);}
+ function remove_child($oldchild) {return new php4DOMElement($this->myDOMNode->removeChild($oldchild->myDOMNode),$this->myOwnerDocument);}
+ function replace_child($oldnode,$newnode) {return new php4DOMElement($this->myDOMNode->replaceChild($oldnode->myDOMNode,$newnode->myDOMNode),$this->myOwnerDocument);}
+ function set_content($text)
+ {
+  if (($this->myDOMNode->hasChildNodes())&&($this->myDOMNode->firstChild->nodeType==XML_TEXT_NODE))
+   $this->myDOMNode->removeChild($this->myDOMNode->firstChild);
+  return $this->myDOMNode->appendChild($this->myDOMNode->ownerDocument->createTextNode($text));
+ }
+}
+
+class php4DOMNodelist
+{
+ var $myDOMNodelist;
+ var $nodeset;
+ function php4DOMNodelist($aDOMNodelist,$aOwnerDocument)
+ {
+  $this->myDOMNodelist=$aDOMNodelist;
+  $this->nodeset=array();
+  $i=0;
+  if (isset($this->myDOMNodelist))
+   while ($node=$this->myDOMNodelist->item($i))
+   {
+    $this->nodeset[]=new php4DOMElement($node,$aOwnerDocument);
+    $i++;
+   }
+ }
+}
+
+class php4DOMXPath
+{
+ var $myDOMXPath;
+ var $myOwnerDocument;
+ function php4DOMXPath($dom_document)
+ {
+  $this->myOwnerDocument=$dom_document;
+  $this->myDOMXPath=new DOMXPath($dom_document->myDOMNode);
+ }
+ function query($eval_str,$contextnode)
+ {
+  if (isset($contextnode)) return new php4DOMNodelist($this->myDOMXPath->query($eval_str,$contextnode->myDOMNode),$this->myOwnerDocument);
+  else return new php4DOMNodelist($this->myDOMXPath->query($eval_str),$this->myOwnerDocument);
+ }
+ function xpath_register_ns($prefix,$namespaceURI) {return $this->myDOMXPath->registerNamespace($prefix,$namespaceURI);}
+}
+
+if (extension_loaded('xsl'))
+{//See also: http://alexandre.alapetite.net/doc-alex/xslt-php4-php5/
+ function domxml_xslt_stylesheet($xslstring) {return new php4DomXsltStylesheet(DOMDocument::loadXML($xslstring));}
+ function domxml_xslt_stylesheet_doc($dom_document) {return new php4DomXsltStylesheet($dom_document);}
+ function domxml_xslt_stylesheet_file($xslfile) {return new php4DomXsltStylesheet(DOMDocument::load($xslfile));}
+ class php4DomXsltStylesheet
+ {
+  var $myxsltProcessor;
+  function php4DomXsltStylesheet($dom_document)
+  {
+   $this->myxsltProcessor=new xsltProcessor();
+   $this->myxsltProcessor->importStyleSheet($dom_document);
+  }
+  function process($dom_document,$xslt_parameters=array(),$param_is_xpath=false)
+  {
+   foreach ($xslt_parameters as $param=>$value)
+    $this->myxsltProcessor->setParameter('',$param,$value);
+   $myphp4DOMDocument=new php4DOMDocument();
+   $myphp4DOMDocument->myDOMNode=$this->myxsltProcessor->transformToDoc($dom_document->myDOMNode);
+   return $myphp4DOMDocument;
+  }
+  function result_dump_file($dom_document,$filename)
+  {
+   $html=$dom_document->myDOMNode->saveHTML();
+   file_put_contents($filename,$html);
+   return $html;
+  }
+  function result_dump_mem($dom_document) {return $dom_document->myDOMNode->saveHTML();}
+ }
+}
 ?>
\ No newline at end of file