JSFiddle - React, Tailwind, and code Playground

HTML

<tag1>
   <tag2>
       <tag3>data</tag3>
   </tag2>
   <tag2>
      <tag3>data2</tag3>
   </tag2>
</tag1>

JavaScript

XMLDocument.prototype.getElementByContent = function getElementByContent(str) {
   var elems = this.querySelectorAll("*");

   for (var i = 0, l = elems.length; i < l; i++) {
      if (elems[i].textContent === str) {
         return elems[i];
      }
   }
};

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

var tag = xmlDoc.createElement("tag3");
var content = xmlDoc.createTextNode("data3");
tag.appendChild(content);

xmlDoc.getElementByContent("data2").parentNode.appendChild(tag);