用jquery解析xml

问题描述:

我有这个函数,我想用jquery解析xml。用jquery解析xml

function xmlParser(xml) { 

    var xmlTitle = xml.data; 
    alert($(xmlTitle).find('title')); 
} 

我想提醒这样的XML的标题,但它不起作用。这就是我所做的,这可以帮助您查看xml对象。

alert(xml); 
alert(xml.data); 

XML警报:[对象的对象。]

xml.data警报:<data><title>Hello</title><topic>World</topic></data>

+0

xml的标题?那是什么意思?文件名? – jhocking

这是与标签title,这意味着它是一个对象的元素,和警报不能显示的物体,你应该使用console.log。要显示元素的文字,你可以这样做:

function xmlParser(xml) { 
    var xmlTitle = xml.find('title'); 
    alert($(xmlTitle).text()); 
} 

FIDDLE

如果你获得了XML蒙山使用$.ajax一个jQuery方法,它应该已经被解析,否则一个很好的做法是解析XML用$.parseXML来确保jQuery能够以通常的方式处理它。

function xmlParser(xml) { 
    var xmlTitle = $.parseXML(xml.data); 
    alert($(xmlTitle).find('title').text()); 
} 

var xml = {} 
    xml.data = '<data><title>Hello</title><topic>World</topic></data>'; 


xmlParser(xml)​ 
+0

它提醒包含'

'元素的jQuery对象,因为''.find()'返回了这个元素。仍然调用'.text()'是正确的答案,假设只有一个'<title>'元素。 – <span class="text-secondary"> <small> <span></span> </small> </span>
+0

我更新了message.data警报。当我确实警告($(xmlTitle).find('title'))时,我的函数实际上不会提醒任何事情。 – hackio

+0

@hackio - 是正确解析的XML,添加到我的答案中,如果您使用ajax获取XML并将数据类型设置为XML,则应该可以。 – adeneo