/**
  * Convenience function for parsing fragments.
  */
 protected function parseFragment($string)
 {
     $events = new DOMTreeBuilder(true);
     $scanner = new Scanner(new StringInputStream($string));
     $parser = new Tokenizer($scanner, $events);
     $parser->parse();
     return $events->fragment();
 }
Exemple #2
0
 /**
  * Parse an input stream where the stream is a fragment.
  *
  * Lower-level loading function. This requires an input stream instead
  * of a string, file, or resource.
  */
 public function parseFragment(\Masterminds\Html5\Parser\InputStream $input, array $options = array())
 {
     $events = new DOMTreeBuilder(true, array_merge($this->getOptions(), $options));
     $scanner = new Scanner($input);
     $parser = new Tokenizer($scanner, $events);
     $parser->parse();
     $this->errors = $events->getErrors();
     return $events->fragment();
 }
 public function testInstructionProcessor()
 {
     $string = '<!DOCTYPE html><html><?foo bar ?></html>';
     $treeBuilder = new DOMTreeBuilder();
     $is = new InstructionProcessorMock();
     $treeBuilder->setInstructionProcessor($is);
     $input = new StringInputStream($string);
     $scanner = new Scanner($input);
     $parser = new Tokenizer($scanner, $treeBuilder);
     $parser->parse();
     $dom = $treeBuilder->document();
     $div = $dom->getElementsByTagName('div')->item(0);
     $this->assertEquals(1, $is->count);
     $this->assertEquals('foo', $is->name);
     $this->assertEquals('bar ', $is->data);
     $this->assertEquals('div', $div->tagName);
     $this->assertEquals('foo', $div->textContent);
 }
Exemple #4
0
 /**
  * Parse an input stream where the stream is a fragment.
  *
  * Lower-level loading function. This requires an input stream instead
  * of a string, file, or resource.
  */
 public function parseFragment(\Masterminds\HTML5\Parser\InputStream $input)
 {
     $events = new DOMTreeBuilder(true, $this->options);
     $scanner = new Scanner($input);
     $parser = new Tokenizer($scanner, $events);
     $parser->parse();
     $this->errors = $events->getErrors();
     return $events->fragment();
 }