显示对象.响应 XML 文本以进行调试

Display object.responseXML text for debugging

本文关键字:调试 文本 对象 响应 XML 显示      更新时间:2023-09-26

我使用以下脚本:

<script type="text/javascript"> 
    function processResult(xData, status) { 
       $('.feedbackLink').empty(); 
        alert ($(xData.responseXML.xml));
        console.log($(xData.responseXML.xml));
        $(xData.responseXML).find("z'':row").each(function() { 
            alert ($(this));
            var title = $(this).attr("ows_Title"); 
            var url = $(this).attr("ows_Contact"); 
            $('.feedbackLink').append("<a href="+url+">"+title+"</a>"); 
       }); 
   };
   $(document).ready(function() { 
   alert("ready"); 
       var soapEnv = "<?xml version='1.0' encoding='utf-8'?> <soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'> <soapenv:Body> <GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'> <listName>Pages</listName> <viewFields> <ViewFields> <FieldRef Name='Title' /> <FieldRef Name='Contact' /> </ViewFields> </viewFields> </GetListItems> </soapenv:Body> </soapenv:Envelope>";       
       $.ajax({ 
           url: "/_vti_bin/lists.asmx", 
           type: "POST", 
           dataType: "xml", 
           data: soapEnv, 
           complete: processResult, 
           contentType: "text/xml; charset='"utf-8'"" 
       });
       alert(soapEnv); 
   }); 
    </script>

$(xData.responseXML).find("z'':row").each(function() {内的警报不会触发。如何查看响应XML?我想仔细检查我正在寻找正确的标识符(我不知道ows_来自哪里,我得到了这个脚本来使用)。

警报和控制台.log仅显示 [对象对象]。

关于如何调试它的任何建议?

尝试使用 console.log(xData.responseText) 在控制台中获取实际的 xml 而不是 [object Object]。

在 IE 中:

alert(xData.responseXML.xml);

在火狐中(未经证实):

var string = (new XMLSerializer()).serializeToString(xData.responseXML); alert(string);

要查看完整的 XML,您可以将其附加到页面 (IE):

function processResult(xData, status) 
{
    document.body.innerHTML += htmlEncode(xData.responseXML.xml);
}
function htmlEncode(str)
{
    return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
}

xData.responseXML.xml是字符串形式的XML,因此不需要将其转换为jquery对象

尝试使用 Firefox 的 Firebug 查看错误消息和 console.log 生成的消息。