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; }
/** * @param \stdClass $target * @param \DOMNode|\DOMText|\DOMCdataSection $node */ private function addText(\stdClass $target, \DOMNode $node) { if (!$node->isWhitespaceInElementContent()) { if (!isset($target->{'$'})) { $target->{'$'} = ''; } $target->{'$'} .= $node->textContent; } }