在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);