prongs
prongs

Reputation: 9606

construct xml string from parsed xml

My code for parsexml:

var parseXml = function (xml) {
   var dom = null;
   if (window.DOMParser) {
      try { 
         dom = (new DOMParser()).parseFromString(xml, "text/xml"); 
      } 
      catch (e) { dom = null; }
   }
   else if (window.ActiveXObject) {
      try {
         dom = new ActiveXObject('Microsoft.XMLDOM');
         dom.async = false;
         if (!dom.loadXML(xml)) // parse error ..

            window.alert(dom.parseError.reason + dom.parseError.srcText);
      } 
      catch (e) { dom = null; }
   }
   else
      alert("cannot parse xml string!");
   return dom;
}

now suppose

s="<a>random</a>";
b=parseXml(s);

now I want to get s back from b. How do I do that?

Upvotes: 2

Views: 141

Answers (2)

Tim Down
Tim Down

Reputation: 324647

You need an XMLSerializer in most browsers and the xml property of XML nodes in older version of IE:

function serializeXmlNode(xmlNode) {
    if (typeof window.XMLSerializer != "undefined") {
        return new window.XMLSerializer().serializeToString(xmlNode);
    } else if (typeof xmlNode.xml != "undefined") {
        return xmlNode.xml;
    }
    return "";
}

var xmlStr = serializeXmlNode(b);

Upvotes: 3

Sirko
Sirko

Reputation: 74086

You need a XMLSerializer (MDN docu) object for converting your XML tree back to a string:

var ser = new XMLSerializer(); 
s = ser.serializeToString( b );

Upvotes: 0

Related Questions