src/parser_utils.js
function parseXMLNode(node) {
  const parsedNode = {
    attributes: {},
    children: {},
    value: {},
  };

  parsedNode.value = parseNodeValue(node);

  if (node.attributes) {
    [...node.attributes].forEach((nodeAttr) => {
      if (nodeAttr.nodeName && nodeAttr.nodeValue !== undefined && nodeAttr.nodeValue !== null) {
        parsedNode.attributes[nodeAttr.nodeName] = nodeAttr.nodeValue;
      }
    });
  }

  if (node.childNodes) {
    [...node.childNodes]
      .filter((childNode) => childNode.nodeName.substring(0, 1) !== '#')
      .forEach((childNode) => {
        parsedNode.children[childNode.nodeName] = parseXMLNode(childNode);
      });
  }

  return parsedNode;
}
function parseXMLNode(node) {
  const parsedNode = {
    attributes: {},
    children: {},
    value: {},
  };

  parsedNode.value = parseNodeValue(node);

  if (node.attributes) {
    [...node.attributes].forEach((nodeAttr) => {
      if (nodeAttr.nodeName && nodeAttr.nodeValue !== undefined && nodeAttr.nodeValue !== null) {
        parsedNode.attributes[nodeAttr.nodeName] = nodeAttr.nodeValue;
      }
    });
  }

  if (node.childNodes) {
    [...node.childNodes]
      .filter((childNode) => childNode.nodeName.substring(0, 1) !== '#')
      .forEach((childNode) => {
        parsedNode.children[childNode.nodeName] = parseXMLNode(childNode);
      });
  }

  return parsedNode;
}
function parseXMLNode ( node ) { const parsedNode = { attributes : { } , children : { } , value : { } , } ; parsedNode . value = parseNodeValue ( node ) ; if ( node . attributes ) { [ ... node . attributes ] . forEach ( ( nodeAttr ) => { if ( nodeAttr . nodeName && nodeAttr . nodeValue !== undefined && nodeAttr . nodeValue !== null ) { parsedNode . attributes [ nodeAttr . nodeName ] = nodeAttr . nodeValue ; } } ) ; } if ( node . childNodes ) { [ ... node . childNodes ] . filter ( ( childNode ) => childNode . nodeName . substring ( 0 , 1 ) !== '#' ) . forEach ( ( childNode ) => { parsedNode . children [ childNode . nodeName ] = parseXMLNode ( childNode ) ; } ) ; } return parsedNode ; }
Parses an XML node recursively.
@param  {Object} node - The node to parse.
@return {Object}
Parses an XML node recursively .