Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is DOMParser().parseFromString() worth using?

Tags:

javascript

https://developer.mozilla.org/en-US/docs/Web/API/DOMParser#DOMParser_HTML_extension

It looks like the DOMParser uses innerHTML to add stringified elements to the DOM. What's the advantage of using it?

I have compared the difference between using DOMParser().parseFromString() and using element.innerHTML below. Am I overlooking something?

Using DOMParser

const main = document.querySelector('main');


const newNodeString = '<body><h2>I made it on the page</h2><p>What should I do now?</p><select name="whichAdventure"><option>Chill for a sec.</option><option>Explore all that this page has to offer...</option><option>Run while you still can!</option></select><p>Thanks for your advice!</p></body>';

// Works as expected
let newNode = new DOMParser().parseFromString(newNodeString, 'text/html');
let div = document.createElement('div');

console.log('%cArray.from: ', 'border-bottom: 1px solid yellow;font-weight:1000;');
Array.from(newNode.body.children).forEach((node, index, array) => {
    div.appendChild(node);
    console.log('length:', array.length, 'index: ', index, 'node: ', node);    
})
main.appendChild(div);

Using innerHTML

const main = document.querySelector('main');


const newNodeString = '<h2>I made it on the page</h2><p>What should I do now?</p><select name="whichAdventure"><option>Chill for a sec.</option><option>Explore all that this page has to offer...</option><option>Run while you still can!</option></select><p>Thanks for your advice!</p>';

// Works as expected
let div = document.createElement('div');
div.innerHTML = newNodeString;

main.appendChild(div);

I expect that DOMParser().parseFromString() provides some additional functionality that I'm unaware of.

like image 422
participator Avatar asked May 27 '19 00:05

participator


People also ask

What is the use of DOMParser?

The DOMParser interface provides the ability to parse XML or HTML source code from a string into a DOM Document . You can perform the opposite operation—converting a DOM tree into XML or HTML source—using the XMLSerializer interface.

Is DOMParser available in node?

js? To use the DOMParser with Node. js, we can use the Cheerio library.

How does DOM parser work?

DOM parser is intended for working with XML as an object graph (a tree like structure) in memory – so called “Document Object Model (DOM)“. In first, the parser traverses the input XML file and creates DOM objects corresponding to the nodes in XML file. These DOM objects are linked together in a tree like structure.


1 Answers

Well, for one thing, DOMParser can parse XML files. It also validates that the XML is well formed and produces meaningful errors if not. More to the point, it is using the right tool for the right job.

I've used it in the past to take an uploaded XML file and produce HTML using a predefined XSLT style sheet, without getting a server involved.

Obviously, if all you're doing is appending the string to an existing DOM, and innerHTML (or outerHTML) works for you, continue using it.

like image 115
Heretic Monkey Avatar answered Oct 16 '22 08:10

Heretic Monkey