首页>Program>source

在jQuery示例页面的Ajax上看到了以下示例:

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

我该如何选择像这样的字符串:

var t = '<foo><bar>something</bar></foo>'; 

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

UPDATE : 请参阅对karim79答案的注释。

最新回答
  • 2021-1-11
    1 #

    将其包装在jQuery对象中.然后在其上使用jQuery的常规DOM操作方法。

    var t = $('<foo><bar>something</bar></foo>');
    //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选项上):

    By default, data passed in to the data option as an object (technically, anything other than a string) will be processed and transformed into a query string, fitting to the default content-type "application/x-www-form-urlencoded". If you want to send DOMDocuments, or other non-processed data, set this option to false.

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

  • 2021-1-11
    2 #

    请立即致电find-如果它是顶层元素,则需要使用filter。

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

  • 2021-1-11
    3 #

    您可以在不使用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");
    

  • 2021-1-11
    4 #

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

    var temp_var = $("<p/>").append($(your_xml_data)).htML()
    

  • 2021-1-11
    5 #

    坚如磐石的代码.在所有浏览器中都能完美运行.

    var xmlFields = $("<root><reports name='report 1'><item 
                   field='ord_num' desc='Order    Number'/></reports></root>");
    alert(xmlFields[0].outerHTML);
    

  • Lambda Java参考
  • javascript:在文本区域或文本输入中多色文本突出显示