在JavaScript中将String转换为XML文档

在Ajax的jQuery示例页面上看到这个例子:

var xmlDocument = [create xml document]; $.ajax({ url: "page.php", processData: false, data: xmlDocument, success: someFunction }); 

我如何使用如下字符串:

 var t = 'something'; 

并将其转换为XML DOM对象? 跨浏览器?

更新 :请参阅karim79答案的评论。

将其包装在jQuery对象中。 然后使用jQuery的普通DOM操作方法。

 var t = $('something'); //loop over 'bar' nodes t.find('bar').each(function () { alert($(this).text()); }); 

如果你想将它转换回普通字符串(例如在修改它之后),你可以这样做:

 //then convert it back to a string //for IE if (window.ActiveXObject) { var str = t.xml; alert(str); } // code for Mozilla, Firefox, Opera, etc. else { var str = (new XMLSerializer()).serializeToString(t); alert(str); } 

编辑: $ .ajax手册说 (在processData选项上):

默认情况下,作为对象传入数据选项的数据(技术上,不是字符串)将被处理并转换为查询字符串,适合默认内容类型“application / x-www-form-urlencoded” 。 如果要发送DOMDocuments或其他未处理的数据,请将此选项设置为false。

因此,如果您将jQuery对象传递给服务器,则需要将其设置为true ,或者完全省略它(默认设置为true )。 希望有所帮助。

只需要调用查找 – 如果它是顶级元素,则需要使用filter。

 var t = $('something'); //loop over 'foo' nodes t.filter('foo').each(function () { alert($(this).find('bar').text()); }); 

你可以在没有jQuery的情况下进行转换。 这取自Mozilla的DOMParser文档 :

 // Create a DOMParser var parser = new DOMParser(); // Use it to turn your xmlString into an XMLDocument var xmlDoc = parser.parseFromString(xmlString, "application/xml"); 

您可以使用此简单代码将xml标记转换为文本

 var temp_var = $("

").append($(your_xml_data)).htML()

摇滚固体代码。 在所有浏览器中完美运行。

 var xmlFields = $(""); alert(xmlFields[0].outerHTML);