2013-03-08 91 views
4

我不完全理解为什么这不起作用。我认为XML很容易交互,但我不禁感到XML的标记导致了问题。我知道它验证XML,但仍:XML作为字符串返回,而不是对象

XML 79.xml

<TREE xmlns:autn="http://schemas.autonomy.com/aci/"> 
     <ITEM id="753" name="Report an IT Issue for a Corporate Finance Application." link="http://ithelp-remedy.gsk.com/ars/ITHelpHDsubmit_Application/SubmitProblemTicket.asp?qSummary=CORPFINANCEIT"> 
       <HELPLINKS/> 
     </ITEM> 
</TREE> 

另外值得注意的,这是整个XML是我回来,我不应该在XML头更详细?

jQuery的

$.ajax({ 
    url:'xml/79.xml', 
    dataType : 'xml', 
    success: function(data){ 
     console.info(data); 
    } 
}); 

这不会返回一个对象,我与:(发挥如何,我可以,我得到它,这样我可以轻松地与data

+0

应该根据jQuery的文档,你有什么的console.log()显示? – soyuka 2013-03-08 12:00:52

+0

更好地使用Javascript来阅读xml – 2013-03-08 12:01:01

+0

'Object {readyState = 1,setRequestHeader = function(),getAllResponseHeaders = function(),more ...}'在这里面,我可以在'responseText'里面看到所需的XML,但它是只返回作为一个字符串,而不是一个对象 – 2013-03-08 12:01:29

回答

1

试试这个:

$.ajax({ 
    url:'xml/79.xml', 
    dataType : 'text', 
    success: function(data){ 
     //I'm adding the xml tags alright, but I don't think you 
     //really need to, or you could just put a check. 
     var omgXmlObj = $($.parseXML('<xml>' + data + '</xml>')); 
     console.log(omgXmlObj.find('TREE')); 
     console.log(omgXmlObj.find('TREE').attr('xmlns:autn')); 
    } 
}); 
+0

我会编辑它,但太棒了。没有想过仅仅将dataType作为文本给出,但这里的真正关键是包装在'xml'标记中返回的字符串,然后解析它。 :D – 2013-03-08 13:14:51

+0

@JamieHutber不仅如此,还包括解析文档对象的$ wrap,即$($。parseXML(....))。这打开了整个jQuery awesomeness罐头(查找,attr等)。另外,正如我在代码片段中的评论中所提到的,没有严格的需要添加xml标签。在这种情况下,即使你省略了xml标签,你仍然可以构建你的文档并使用它。我只是做一个潜意识感觉很好的因素,我真的不能证明,哈哈。 – 2013-03-08 15:56:18

+0

哈,你明显地,我总是把所有的标签都用不必要的元素包起来:p 但是,就像你说的,我用$包裹了所有元素,所以我可以在它们上使用jQuery。好东西哥们:) – 2013-03-08 16:22:22

1

据jQuery的文档播放

如果要将文本响应视为XML,请使用“text xml”作为 dataType

所以尝试做这样的:

$.ajax({ 
    url:'xml/79.xml', 
    dataType : 'text xml', 
    success: function(data){ 
     console.info(data); 
    } 
}); 

的源代码来看(_ajaxConvert功能)好像没有转换如果只指定一个数据类型都,我可能是错的

+0

仍然返回对象,但它的方向正确。 @refactor拥有它的权利。 – 2013-03-08 13:14:10

相关问题