/** * Node (DomXML) fetcher. * @param DOMXPath $node object * @param string $searchPattern * @param string $output * * @return null|string */ protected function nodeFetch($node = '', $searchPattern = '', $output = 'nodeValue') { $result = null; if ('' != $node && '' != $searchPattern) { try { $ad_Doc = new DOMDocument(); $cloned = $node->cloneNode(TRUE); $ad_Doc->appendChild($ad_Doc->importNode($cloned, True)); $newXpath = new DOMXPath($ad_Doc); $ad_title_tag = $newXpath->evaluate($searchPattern); switch ($output) { case 'byAttribute': $result = $ad_title_tag; break; case '': case 'nodeValue': default: if ($ad_title_tag->length) { $result = trim($ad_title_tag->item(0)->nodeValue); } break; } } catch (Exception $e) { $this->setError($e->getMessage()); } } return $result; }