2012-06-29 2 views
2

Мой код для ParseXML:конструкт XML-строка из разобранного XML

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; 
} 

теперь предположим

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

теперь я хочу, чтобы получить s назад от b. Как мне это сделать?

ответ

3

Вам нужно XMLSerializer в большинстве браузеров и xml свойства узлов XML в старой версии 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); 
0

Вам нужен XMLSerializer (MDN docu) объект для преобразования вашего XML-дерева обратно в строку:

var ser = new XMLSerializer(); 
s = ser.serializeToString(b); 
Смежные вопросы