code: 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;
  }
docs: Parses an XML node recursively.
  @param  {Object} node - The node to parse.
  @return {Object}