使用jquery从xml中选择完全匹配

时间:2015-01-21 21:35:03

标签: javascript php jquery xml

以下是XML示例。

<segment>
<departure-date-time>2015-01-31T10:40:00</departure-date-time>
<arrival-date-time>2015-01-31T14:00:00</arrival-date-time>
<data-details>
<stop-details>
<arrival-date-time>2015-01-31T12:25:00</arrival-date-time>
<departure-date-time>2015-01-31T13:00:00</departure-date-time>
<layover-duration>2100</layover-duration>
</stop-details>
</data-details>
</segment>

我想从我编写的那个样本XML中获取值

$('segment', this).each(function(index, element) {
var arr_tym =$(element).find('arrival-date-time').text();
var dst_tym =$(element).find('departure-date-time').text();
});

如果我这样使用我得到的结果,但它取的是

的值

也打印为 2015-01-31T14:00:002015-01-31T12:25:00

实际输出应 2015-01-31T14:00:00。。我想要所有这些价值观。

<departure-date-time>2015-01-31T10:40:00</departure-date-time>
<arrival-date-time>2015-01-31T14:00:00</arrival-date-time>

我不想要

中的值

2 个答案:

答案 0 :(得分:0)

除了你在XML数据上使用jQuery之外,将$('segment', this)替换为$('segment > departure-date-time', this)应该可以解决这个问题,并简化第二部分,因为它将直接选择第一个departure-date-time 1 {} segment

$('segment > departure-date-time, segment > arrival-date-time', this).each(function(index, element) {
    var text=$(element).text();
    console.log(text);
});

答案 1 :(得分:0)

那么在循环中使用它呢?

var dep = $(element).find('departure-date-time')[0].innerHTML;
var arr = $(element).find('arrival-date-time')[0].innerHTML;