public static function highlightFile()
 {
     self::$_dom = new DOMDocument();
     self::$_dom->load(self::$_filename);
     $xpath = new DOMXPath(self::$_dom);
     $elements = $xpath->query("//fo:block[@codehl]");
     foreach ($elements as $block) {
         $code = self::_highlight($block->nodeValue);
         $code_block = self::_createBlockCode($code);
         foreach ($block->childNodes as $node) {
             $block->removeChild($node);
         }
         $block->appendChild($code_block);
         $block->removeAttribute('codehl');
     }
     self::$_dom->save(self::$_filename);
 }
 public static function highlightFile()
 {
     self::$_dom = new DOMDocument();
     self::$_dom->load(self::$_filename);
     $xpath = new DOMXPath(self::$_dom);
     $elements = $xpath->query("//fo:block[@codehl]");
     foreach ($elements as $block) {
         $block->removeAttribute('codehl');
         $code = self::_highlight($block->nodeValue);
         if (substr($code, 0, 5) !== '<span') {
             if ($block->childNodes->length > 0) {
                 $block->firstChild->nodeValue = ltrim($block->firstChild->nodeValue);
                 $block->lastChild->nodeValue = rtrim($block->lastChild->nodeValue);
             }
             continue;
         }
         $code_block = self::_createBlockCode($code);
         while ($block->childNodes->length > 0) {
             $block->removeChild($block->childNodes->item(0));
         }
         $block->appendChild($code_block);
     }
     self::$_dom->save(self::$_filename);
 }