jQuery从XML文件中检索数据

时间:2014-02-06 08:33:40

标签: jquery html ajax xml

我需要在以下XML中检索属性值:

<datasource id="social_messages2" serial="20140205152417255" type="feed" subtype="" mtime="2014-02-05T14:24:17.2554296Z" mtime_unix="1391610257" tz="+0100" ttl="5">
<entry id="13036083562208554600000000" ctime="2014-02-05T14:19:17.5991796Z" mtime="2014-02-05T14:19:17.5991796Z" ctime_unix="1391609958" mtime_unix="1391609958">
<field name="design">user</field>
<field name="message">RT @ThatsSarcasm: is it summer 2014 yet</field>
<field name="nickname">@devine_318</field>
<field name="mid">543606</field>
<field name="iconname"/>
<field name="timestamp">2014-01-30 15:17:46</field>
<field name="viz_image"/>
<field name="via">twitter</field>
<field name="date">2014-01-30</field>
<field name="time">15:17:46</field>
</entry> 

例如我需要检索时间(15:17:46)我如何写它我的下面的代码不能以这种方式工作我的代码工作如果这样的标签(<time>15:17:46</time>)我怎么能检索字段的值看下面的代码:

function parseXml(xml) {
    $(xml).find('entry').each(function() {
        console.log(this);
        var $show = $(this);
        var via = $show.find('via').text();
        var message = $show.find('message').text();
        var time = $show.find('time').text();
        var html = '<tr><td class="bold"><img src="'+ via +'"/></td><td class="hide">' + time + '</td><td class="bold">' + message + '</td></tr>';
        $('#show_table').append($(html));
    });
}

1 个答案:

答案 0 :(得分:0)

您需要根据属性值而不是标记名称进行选择。替代

$show.find('time').text()

$show.find("field[name='time']").text()

当您提供没有前面字符的文本时。即“文本”作为选择器。 jQuery选择具有该标记名称的元素。使用. jQuery进行前缀将搜索具有名为文本的类的元素。例如。 “.foo”使用foo类搜索元素。但是,要搜索属性值,您需要告诉jQuery要搜索哪些属性并可选择。因此,要搜索名称为name且值为time的属性的任何元素,您需要使用属性选择器。 [attributeName='valueToFilterOn'],在这种情况下,[name='time']