/** * @param DOMNode $node * @return boolean */ public function parseNode(DOMNode &$node) { $removeNode = false; if ($node instanceof DOMText) { if (!$node->isWhitespaceInElementContent() && !empty($node->nodeValue)) { $this->parseNodeText($node); } } else { $tagName = isset($node->tagName) ? $node->tagName : ''; if (substr($tagName, 0, 3) == 'os:' || substr($tagName, 0, 4) == 'osx:') { $removeNode = $this->parseOsmlNode($node); } elseif ($this->templateLibrary->hasTemplate($tagName)) { // the tag name refers to an existing template (myapp:EmployeeCard type naming) // the extra check on the : character is to make sure this is a name spaced custom tag and not some one trying to override basic html tags (br, img, etc) $this->parseLibrary($tagName, $node); } else { $removeNode = $this->parseNodeAttributes($node); } } return is_object($removeNode) ? $removeNode : false; }