如何使用jquery提取XML标记内容?

时间:2013-07-16 19:25:07

标签: javascript jquery ajax asp.net-mvc

我的ASP.NET MVC4控制器返回一个XML字符串,当我们传递一个 SERIAL 时。现在,当我使用C#发送请求时,它工作正常,XML字符串返回,看起来像

<CalculatedCode> 12312312 </CalculatedCode> 

我还需要通过下面的jquery来做。查询正在运行,但它返回的是XMLDocumentObject,而不是xml string。我查看了Jquery文档以尝试解析它,但我是一个jquery noob,我确定我在代码中出错了。

              $.ajax({
                 url: '@Url.Action("Index", "Home")',
                 type: 'GET',
                 dataType: 'xml',
                 data: { SERIAL: serial}, //SERIAL comes from a textbox
                 success: function (responseData) {

             //Code below is messed up, it simply needs to find the CalculatedCode tag 
             //and  extract the value within this tag
                     xmlDoc = $.parseXML(response);
                     $xml = $(xmlDoc);                         
                     $thecode = $xml.find("CalculatedCode");  
             // ToDo: Bug stackoverflow members with this noob question          

                 }
             });

非常感谢:)

1 个答案:

答案 0 :(得分:1)

当你将dataType设置为XML时已经解析了,所以不需要$.parseXML,但如果元素是根元素,find()不起作用,因为它只找到孩子,你我需要filter()

$xml     = $(responseData);                         
$thecode = $xml.filter("CalculatedCode").text();

获取元素的技巧是将xml附加到另一个元素:

$xml     = $('<div />').append(responseData);                         
$thecode = $xml.find("CalculatedCode").text();