summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/HTML5.php10
-rw-r--r--src/HTML5/Parser/DOMTreeBuilder.php10
2 files changed, 20 insertions, 0 deletions
diff --git a/src/HTML5.php b/src/HTML5.php
index a471c96..c9d5d57 100644
--- a/src/HTML5.php
+++ b/src/HTML5.php
@@ -151,6 +151,16 @@ class HTML5 {
return $events->document();
}
+ public static function parseFragment(\HTML5\Parser\InputStream $input) {
+ $events = new DOMTreeBuilder();
+ $scanner = new Scanner($input);
+ $parser = new Tokenizer($scanner, $events);
+
+ $parser->parse();
+
+ return $events->fragment();
+ }
+
/**
* Get the default options.
*
diff --git a/src/HTML5/Parser/DOMTreeBuilder.php b/src/HTML5/Parser/DOMTreeBuilder.php
index 5df4177..a5a20ba 100644
--- a/src/HTML5/Parser/DOMTreeBuilder.php
+++ b/src/HTML5/Parser/DOMTreeBuilder.php
@@ -81,6 +81,16 @@ class DOMTreeBuilder implements EventHandler {
}
/**
+ * Get the DOM fragment for the body.
+ *
+ * This returns a DOMNodeList because a fragment may have zero or more
+ * DOMNodes at its root.
+ */
+ public function fragment() {
+ return $this->doc->documentElement->childNodes;
+ }
+
+ /**
* Provide an instruction processor.
*
* This is used for handling Processor Instructions as they are