"use strict";
|
|
const xmlParser = require("./xml");
|
const htmlParser = require("./html");
|
|
// https://w3c.github.io/DOM-Parsing/#dfn-fragment-parsing-algorithm
|
function parseFragment(markup, contextElement) {
|
const { _parsingMode } = contextElement._ownerDocument;
|
|
let parseAlgorithm;
|
if (_parsingMode === "html") {
|
parseAlgorithm = htmlParser.parseFragment;
|
} else if (_parsingMode === "xml") {
|
parseAlgorithm = xmlParser.parseFragment;
|
}
|
|
// Note: HTML and XML fragment parsing algorithm already return a document fragments; no need to do steps 3 and 4
|
return parseAlgorithm(markup, contextElement);
|
}
|
|
function parseIntoDocument(markup, ownerDocument) {
|
const { _parsingMode } = ownerDocument;
|
|
let parseAlgorithm;
|
if (_parsingMode === "html") {
|
parseAlgorithm = htmlParser.parseIntoDocument;
|
} else if (_parsingMode === "xml") {
|
parseAlgorithm = xmlParser.parseIntoDocument;
|
}
|
|
return parseAlgorithm(markup, ownerDocument);
|
}
|
|
module.exports = {
|
parseFragment,
|
parseIntoDocument
|
};
|