2

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?

2 Answers 2

3

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);
Sign up to request clarification or add additional context in comments.

Comments

0

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

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

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.