javascript - 从 ajax 结果中提取 XML 数据

标签 javascript jquery ajax xml

我的AJAX调用是这样的

$.ajax({
    url: '/services/LTLGadgetV2.aspx',
    type: 'Get',
    success: function (result) {      
        console.log( result);  }
    });

在控制台中我得到这样的结果:

enter image description here 示例 XML

  <RateResults xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<PriceSheets>
  <PriceSheet type="Cost" CurrencyCode="USD" CreateDate="0001-01-01T00:00:00">
    <LaneID>9553</LaneID>
    <MaxDeficitWeight>19999</MaxDeficitWeight>
  </PriceSheet>
</PriceSheets>
<StatusCode>0</StatusCode>
<StatusMessage>Rating Process completed with no errors</StatusMessage>
<debug>
  <debug>
    <ContractName>2013  Pinnacpccle </ContractName>
  </debug>
</debug>
<PricingModel><![CDATA[<div id="PricingModelDiv" style="position:absolute;display:none;"><table id="myTable" Width = "300" style="font-family:Verdana; background:white; font-size:9" border="1"> </table></div>]]></PricingModel>
</RateResults>

任何人都可以指出我如何获取此响应中的 XML 数据以便我可以对其进行操作吗?我想像这样将输出解析为正确的 XML

   var xmlDocNp;
    xmlDocNp = $.parseXML('<xml>' + result + '</xml>'),
     $xml = $(xmlDocNp),
    pricingModel = $xml.find('PricingModel').text();

但为了做到这一点,我首先需要从上面的结果中只提取 XML 数据

Note: the XML data starts from RateResults tag

Note: If i put a break-point and checked the result in chrome, it looks like this

enter image description here

最佳答案

因为result已经是Object,而不是String,所以没有必要使用$.parseXML():

var $xml = $(result);
var pricingModel = $xml.find('PricingModel').text();

这样做的原因是,即使您没有在 Ajax 请求参数中设置结果数据的 dataType,jQuery 也会使用 Intelligent Guess 来理解数据是什么。由于jQuery已经正确猜到它是XML,所以它在内部执行了$.parseXML()并传递了Object而不是String成功 回调。

jQuery.ajax() docs .

关于javascript - 从 ajax 结果中提取 XML 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30778002/

相关文章:

javascript - 创建一个在所有页面上显示的通用标题

javascript - 如何在extjs6中发送Ajax到远程服务器?

javascript - 通过 session 切换登录和注销

Jquery ajax 和 php die()

javascript - 错误 : Module did not self-register.

javascript - Google 新闻框,在新窗口/标签中打开新闻页面

javascript - 使引导轮播中的图像响应?

javascript - jquery dataTables - 如何添加编辑和删除选项

jquery - 悬停在特定图像上

javascript - Dropzone.js : Upload file without Browse dialog in php-webdriver integration tests