/** * 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(); }
/** * 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); }
/** * 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(); }