解析SharePoint search.asmx结果

时间:2014-03-26 20:29:00

标签: jquery xml sharepoint

我通过jquery和search.asmx的查询成功并返回一个xml结果集。但QueryResult节点的内容是转义xml,我无法弄清楚如何解析它。例如:

<QueryResult>&lt;ResponsePacket xmlns="urn:Microsoft.Search.Response"&gt;&lt;Response domain="QDomain"&gt;&lt;Range&gt;&lt;StartAt&gt;1&lt;/StartAt&gt;&lt;Count&gt;5&lt;/Count&gt;&lt;TotalAvailable&gt;5&lt;/TotalAvailable&gt;&lt;Results&gt;&lt;Document xmlns="urn:Microsoft.Search.Response.Document"&gt ... </QueryResult>

我试图以这种方式解析它,但无处可去。

    function procSrchQry(xData, status){ 
    console.log("procSrchQry: start");
    $("#debugDiv2").text(xData.responseText);

    $(xData.responseXML.xml).find("QueryResult").each(function() {
      console.log("Found QueryResult");

      $("#debugDiv3").text( $(this).text()  );
       var x = $("<xml>" + $(this).text() + "</xml>"); // wrap text to make it XML      
       //traverse the xml to get the items
       x.find("Document").each(function() {
         console.log("Found Document node");
       });
    });   
  console.log("procSrchQry: end "); 
}

V_B's answer可能是我需要实现的,但我不确定如何。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

您可以使用jQuery.parseXML来解析XML字符串:

var xmlDoc = $.parseXML(xData.responseText);

然后,您可以使用jQuery遍历XML,就像使用html一样:

$(xmlDoc).find("TotalAvailable").text() // get TotalAvailable element value