使用Javascript比较来自不同子元素的多个xml子元素

时间:2018-09-12 12:44:59

标签: javascript ajax xml

我下面有这个xml文件,想比较每个子元素的开始时间和结束时间子元素。

<Carpark>
<carparkid>CP1</carparkid>
    <DayType>
      <daytypeid>Weekday</daytypeid>
      <starttime>7:00am</starttime>
      <endtime>5:00pm</endtime>
      <rate>$1.00</rate>
      <unit>per 20 min</unit>
    </DayType>
    <DayType>
      <daytypeid>Weekday</daytypeid>
      <starttime>7:00am</starttime>
      <endtime>5:00pm</endtime>
      <rate>$0.60</rate>
      <unit>per 30 min</unit>
    </DayType>
    <DayType>
      <daytypeid>Weekday</daytypeid>
      <starttime>5:00pm</starttime>
      <endtime>10:30pm</endtime>
      <rate>$0.60</rate>
      <unit>per 30 min</unit>
    </DayType>
    <DayType>
      <daytypeid>Weekday</daytypeid>
      <starttime>10:30pm</starttime>
      <endtime>7:00am</endtime>
      <rate>$0.60</rate>
      <unit>per 30 min</unit>
    </DayType>
</CarPark>

我要检查的是速率和单位是否类似于下一个子元素,直到它遍历所有DayType。只要它们彼此相似,它将使用具有率和单位的第一个出现的子元素的开始时间,并使用下一个结束时间。

基于上面的示例,我想要这样的输出:

平日
7:00 am to 5:00 pm($ 1.00每20分钟
7:00 am至7:00 am每30分钟$ 0.60

您可以看到,从7:00 am到7:00 am,只要费率和单位彼此相似,就会使用它的开始时间直到最后一个结束时间。

var arStartTime = [];
var arendTime = [];
var arRate = [];
var arUnit = []; 

//Snippet of Ajax function I am using.
var xmlNode = $(xml).find("DayType");
   xmlNode.each(function() {
      arStartTime = $.trim($(this).children('starttime').text());
      arendTime = $.trim($(this).children('endtime').text());
      arRate = $.trim($(this).children('rate').text());
      arUnit = $.trim($(this).children('unit').text());
});

contLine += $.trim($(this).children('daytypeid').text());

$('#xmlcontent').html(contLine);

我在下一步该怎么做,有人可以帮助我吗?

0 个答案:

没有答案