예제 #1
0
 private function canonicalizeData($node, $canonicalmethod)
 {
     $exclusive = FALSE;
     $withComments = FALSE;
     switch ($canonicalmethod) {
         case 'http://www.w3.org/TR/2001/REC-xml-c14n-20010315':
             $exclusive = FALSE;
             $withComments = FALSE;
             break;
         case 'http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments':
             $withComments = TRUE;
             break;
         case 'http://www.w3.org/2001/10/xml-exc-c14n#':
             $exclusive = TRUE;
             break;
         case 'http://www.w3.org/2001/10/xml-exc-c14n#WithComments':
             $exclusive = TRUE;
             $withComments = TRUE;
             break;
     }
     /* Support PHP versions < 5.2 not containing C14N methods in DOM extension */
     $php_version = explode('.', PHP_VERSION);
     if ($php_version[0] < 5 || $php_version[0] == 5 && $php_version[1] < 2) {
         return C14NGeneral($node, $exclusive, $withComments);
     }
     return $node->C14N($exclusive, $withComments);
 }
예제 #2
0
 private function canonicalizeData($node, $canonicalmethod, $arXPath = NULL, $prefixList = NULL)
 {
     $exclusive = FALSE;
     $withComments = FALSE;
     switch ($canonicalmethod) {
         case 'http://www.w3.org/TR/2001/REC-xml-c14n-20010315':
             $exclusive = FALSE;
             $withComments = FALSE;
             break;
         case 'http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments':
             $withComments = TRUE;
             break;
         case 'http://www.w3.org/2001/10/xml-exc-c14n#':
             $exclusive = TRUE;
             break;
         case 'http://www.w3.org/2001/10/xml-exc-c14n#WithComments':
             $exclusive = TRUE;
             $withComments = TRUE;
             break;
     }
     /* Support PHP versions < 5.2 not containing C14N methods in DOM extension */
     $php_version = explode('.', PHP_VERSION);
     if ($php_version[0] < 5 || $php_version[0] == 5 && $php_version[1] < 2) {
         if (!is_null($arXPath)) {
             throw new Exception("PHP 5.2.0 or higher is required to perform XPath Transformations");
         }
         return C14NGeneral($node, $exclusive, $withComments);
     }
     return $node->C14N($exclusive, $withComments, $arXPath, $prefixList);
 }
예제 #3
0
 private function canonicalizeData($node, $canonicalmethod, $arXPath = NULL, $prefixList = NULL)
 {
     $exclusive = FALSE;
     $withComments = FALSE;
     switch ($canonicalmethod) {
         case 'http://www.w3.org/TR/2001/REC-xml-c14n-20010315':
             $exclusive = FALSE;
             $withComments = FALSE;
             break;
         case 'http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments':
             $withComments = TRUE;
             break;
         case 'http://www.w3.org/2001/10/xml-exc-c14n#':
             $exclusive = TRUE;
             break;
         case 'http://www.w3.org/2001/10/xml-exc-c14n#WithComments':
             $exclusive = TRUE;
             $withComments = TRUE;
             break;
     }
     /* Support PHP versions < 5.2 not containing C14N methods in DOM extension */
     $php_version = explode('.', PHP_VERSION);
     if ($php_version[0] < 5 || $php_version[0] == 5 && $php_version[1] < 2) {
         if (!is_null($arXPath)) {
             throw new Exception("PHP 5.2.0 or higher is required to perform XPath Transformations");
         }
         return C14NGeneral($node, $exclusive, $withComments);
     }
     if (is_null($arXPath) && $node instanceof DOMNode && $node->ownerDocument !== NULL && $node->isSameNode($node->ownerDocument->documentElement)) {
         /* Check for any PI or comments as they would have been excluded */
         $element = $node;
         while ($refnode = $element->previousSibling) {
             if ($refnode->nodeType == XML_PI_NODE || $refnode->nodeType == XML_COMMENT_NODE && $withComments) {
                 break;
             }
             $element = $refnode;
         }
         if ($refnode == NULL) {
             $node = $node->ownerDocument;
         }
     }
     return $node->C14N($exclusive, $withComments, $arXPath, $prefixList);
 }