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;
 }
Example #2
0
 /**
  * @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;
     }
 }