0

我有以下 xml,它只是按 x 周、天、轮班开始日期和结束日期构建的轮班模式。如果我的 xml 节点“启用为真”,我需要查询 xml 以在该周的轮班时间内更改 div 的内容。

例如'week1' 'Monday' 'Date' '班次开始' '班次结束' 'enabled = true' 然后将div的内容(html)更改为该班次期间。

XML 示例时间表如下:

<Schedule>
  <Week2>
    <StartDate>2012-07-30T00:00:00</StartDate> <!-- Week Beginning -->
        <Shift>
            <Date>2012-07-30T00:00:00</Date> <!-- Monday -->
            <StartTime>2012-07-30T09:45</StartTime> <!-- Shift Starts -->
            <EndTime>2012-07-30T17:45</EndTime> <!-- Shift Ends -->
            <Enabled>true</Enabled>
        </Shift>
        <Shift>
            <Date>2012-07-31T00:00:00</Date> <!-- Tuesday -->
            <StartTime>2012-07-31T09:45</StartTime> <!-- Shift Starts -->
            <EndTime>2012-07-31T17:45</EndTime> <!-- Shift Ends -->
            <Enabled>true</Enabled>
        </Shift>
        <Shift>
            <Date>2012-08-01T00:00:00</Date> <!-- Wednesday -->
            <StartTime></StartTime> <!-- Shift Starts -->
            <EndTime></EndTime> <!-- Shift Ends -->
            <Enabled>false</Enabled>
        </Shift>
        <Shift>
            <Date>2012-08-02T00:00:00</Date> <!-- Thursday -->
            <StartTime>2012-08-02T09:45</StartTime> <!-- Shift Starts -->
            <EndTime>2012-08-02T17:45</EndTime> <!-- Shift Ends -->
            <Enabled>true</Enabled>
        </Shift>
        <Shift>
            <Date>2012-08-03T00:00:00</Date> <!-- Friday -->
            <StartTime>2012-08-03T09:45</StartTime> <!-- Shift Starts -->
            <EndTime>2012-08-03T17:45</EndTime> <!-- Shift Ends -->
            <Enabled>true</Enabled>
        </Shift>
        <Shift>
            <Date>2012-08-04T00:00:00</Date> <!-- Saturday -->
            <StartTime>2012-08-04T08:15</StartTime> <!-- Shift Starts -->
            <EndTime>2012-08-04T16:45</EndTime> <!-- Shift Ends -->
            <Enabled>true</Enabled>
        </Shift>
        <Shift>
            <Date>2012-08-05T00:00:00</Date> <!-- Sunday -->
            <StartTime></StartTime> <!-- Shift Starts -->
            <EndTime></EndTime> <!-- Shift Ends -->
            <Enabled>false</Enabled>
        </Shift>
  </Week2>
</Schedule>
4

1 回答 1

0
    var xml = "our xml...";

    var resultArray = 
    $(xml).find('Enabled:contains(true)')
        .parent()
        .map(function(item){
            return {
              date: $(this).children('Date').text(),
              startTime: $(this).children('StartTime').text()
              // and so on ....
            }
        })).get();

父级将返回班次对象的集合。如果您需要一周,则使用“父母”并指定第 2 周,然后像示例中那样查看后代。

于 2012-07-31T12:22:04.990 回答