public function visitHyperlink(IdmlHyperlink $element, $depth = 0)
 {
     $this->verifyParentStructure();
     $this->stashParentCount($element);
     $hashTag = null;
     $parentTag = $this->getParentTag();
     if (strlen($parentTag) > 0 && substr($parentTag, 0, 2) == 'a.') {
         $element->idmlTag = $parentTag;
         array_pop($this->parentStack);
     } elseif (!strlen($element->idmlTag)) {
         $element->idmlTag = "a";
     }
     if (strlen($element->idmlTag) > 0 && !IdmlPxeHelper::hasHashValue($element) && $this->pxeRules->isPxeTag($element->idmlTag)) {
         $hashTag = IdmlPxeHelper::getNewTagHash();
     } elseif (IdmlPxeHelper::hasHashValue($element)) {
         $parts = explode('#', $element->idmlTag);
         $element->idmlTag = $parts[0];
         $hashTag = $parts[1];
     }
     if (strlen($hashTag) > 0) {
         $pxeAttribs = array();
         if (strlen($element->href) > 0) {
             $pxeAttribs['href'] = $element->href;
         }
         if (strlen($element->name) > 0) {
             $pxeAttribs['name'] = $element->name;
         }
         $element->href = "";
         $element->name = "";
         $this->pushParentTag($element->idmlTag, $hashTag, $element);
         $parents = implode(' ', array_slice($this->parentStack, 0, count($this->parentStack) - 1));
         $this->setPxeAttributes($element, $element->idmlTag, $parents, $hashTag);
         IdmlPxeHelper::setPxeAttributes($element, $pxeAttribs);
         $this->clearParentElementWithHash($element, $hashTag);
     }
 }