Featured Post

Elon Musk’s Influence on the 2024 Presidential Election and Its Potential Outcomes

  In the upcoming 2024 U.S. presidential election, the influence of tech moguls like Elon Musk is a point of significant interest. Musk, with his vast following, has demonstrated an ability to sway public opinion through his business decisions, public statements, and presence on social media platforms like X (formerly Twitter). The effect Musk’s actions may have on the election—and candidates such as Donald Trump—is worth examining as he becomes a key player in the larger landscape of digital influence. Elon Musk and Digital Influence in Politics A Shift in Public Influence Musk’s reach extends beyond business; he is now a major influencer in political spheres. By acquiring X, Musk gained direct access to one of the most influential social media platforms in the world, where he regularly engages with a diverse audience. His unpredictable political stances and commentary resonate with millions, and his platform decisions have the potential to shape public opinion. Musk’s Public Poli...

Convert XML to JSON with Apps Script


The XMLService class of Google Apps Scripts lets you parse and navigate the nodes of any XML file. You can also convert the XML to JSON and access the XML nodes though the simpler dot notation.
Unlike the deprecated XML class, the new XMLService class doesn’t allow lenient parsing and hence may not be parse the HTML DOM structure since it may not be well formed.
/* Source: https://gist.github.com/erickoledadevrel/6b1e9e2796e3c21f669f */
/**
 * Converts an XML string to a JSON object, using logic similar to the
 * sunset method Xml.parse().
 * @param {string} xml The XML to parse.
 * @returns {Object} The parsed XML.
 */
function XML_to_JSON(xml) {
  var doc = XmlService.parse(xml);
  var result = {};
  var root = doc.getRootElement();
  result[root.getName()] = elementToJSON(root);
  return result;
}

/**
 * Converts an XmlService element to a JSON object, using logic similar to
 * the sunset method Xml.parse().
 * @param {XmlService.Element} element The element to parse.
 * @returns {Object} The parsed element.
 */
function elementToJSON(element) {
  var result = {};
  // Attributes.
  element.getAttributes().forEach(function (attribute) {
    result[attribute.getName()] = attribute.getValue();
  });
  // Child elements.
  element.getChildren().forEach(function (child) {
    var key = child.getName();
    var value = elementToJSON(child);
    if (result[key]) {
      if (!(result[key] instanceof Array)) {
        result[key] = [result[key]];
      }
      result[key].push(value);
    } else {
      result[key] = value;
    }
  });
  // Text content.
  if (element.getText()) {
    result['Text'] = element.getText();
  }
  return result;
}

Comments