JSFiddle - React, Tailwind, and code Playground

by Michael Menaker

JavaScript

function walkTheDOM(node, spaces) {
  if (node.nodeType === 1) {
    console.log(spaces + node.nodeName);
  }

  if (node.nodeType === 3) { // Is it a Text node?
    var text = node.data.trim();
    if (text.length > 0) { // Does it have non white-space text content?
      console.log(spaces + text);
    }
  }
  if (node.nodeType === 1 && node.hasAttributes()) {
    var attrs = node.attributes;
    for (var i = attrs.length - 1; i >= 0; i--) {
      console.log(spaces + attrs[i].name + "->" + attrs[i].value);
    }
  }
  node = node.firstChild;
  while (node) {
    walkTheDOM(node, spaces + " ");
    node = node.nextSibling;
  }
}



var text = "<book>" +
  "<title>Everyday Italian</title>" +
  "<author>Giada De Laurentiis<year>2005</year></author>" +
  "<year name='value'>2005</year>" +
  "</book>";

parser = new DOMParser();
xmlDoc = parser.parseFromString(text, "text/xml");

// Example usage: Process all Text nodes on the page
walkTheDOM(xmlDoc.documentElement, ' ');