Exemplo n.º 1
0
 public function endTag($name)
 {
     $lname = $this->normalizeTagName($name);
     // Ignore closing tags for unary elements.
     if (Elements::isA($name, Elements::VOID_TAG)) {
         return;
     }
     if ($this->insertMode <= static::IM_BEFORE_HTML) {
         // 8.2.5.4.2
         if (in_array($name, array('html', 'br', 'head', 'title'))) {
             $this->startTag('html');
             $this->endTag($name);
             $this->insertMode = static::IM_BEFORE_HEAD;
             return;
         }
         // Ignore the tag.
         $this->parseError("Illegal closing tag at global scope.");
         return;
     }
     // Special case handling for SVG.
     if ($this->insertMode == static::IM_IN_SVG) {
         $lname = Elements::normalizeSvgElement($lname);
     }
     // XXX: Not sure whether we need this anymore.
     // if ($name != $lname) {
     //  return $this->quirksTreeResolver($lname);
     //}
     // XXX: HTML has no parent. What do we do, though,
     // if this element appears in the wrong place?
     if ($lname == 'html') {
         return;
     }
     //$this->current = $this->current->parentNode;
     if (!$this->autoclose($lname)) {
         $this->parseError('Could not find closing tag for ' . $lname);
     }
     //switch ($this->insertMode) {
     switch ($lname) {
         case "head":
             $this->insertMode = static::IM_AFTER_HEAD;
             break;
         case "body":
             $this->insertMode = static::IM_AFTER_BODY;
             break;
         case "svg":
         case "mathml":
             $this->insertMode = static::IM_IN_BODY;
             break;
     }
 }
Exemplo n.º 2
0
 /**
  * Write a text node.
  *
  * @param \DOMText $ele
  *   The text node to write.
  */
 public function text($ele)
 {
     if (isset($ele->parentNode) && isset($ele->parentNode->tagName) && Elements::isA($ele->parentNode->tagName, Elements::TEXT_RAW)) {
         $this->wr($ele->data);
         return;
     }
     // FIXME: This probably needs some flags set.
     $this->wr($this->enc($ele->data));
 }