2012-06-20 66 views
0

我需要從XML文件中獲取數據jQuery的XML解析的foreach

<?xml version="1.0"?> 
    <xml> 
    <User> 
    <Agent> 
     <id>cr4523</id> 
    </Agent> 
    <Time> 
     <Time_Main>2-3pm</Time_Main> 
     <Day>Mon</Day> 
     <Time_Main>3-4pm</Time_Main> 
     <Day>Mon</Day> 
     <Time_Main>10-11am</Time_Main> 
     <Day>Tue</Day> 
     </Time> 
    </User> 
    </xml> 

我的問題是:不知道我的XML文件格式正確,B:我使用compressess所有數據一起的jQuery ,'Time_Main'部分中的albiet和'Day'部分。

我需要的是每個Time_Main和Day我需要調用一個簡單的函數。

我使用jQuery是 -

$(html).find('Time').each(function(){ 
     var day=$(this).find('Day').text(); 
    var time_main=$(this).find('Time_Main').text(); 
    }); 

回答

1

第一件事,格式化是正確的,但結構不是(我認爲時間/日期對是被選擇作爲單一實體)。 我會做那麼:

<?xml version="1.0"?> 
<xml> 
<User> 
    <Agent> 
    <id>cr4523</id> 
    </Agent> 
    <Time> 
    <Time_Main>2-3pm</Time_Main> 
    <Day>Mon</Day> 
    </Time> 
    <Time> 
    <Time_Main>3-4pm</Time_Main> 
    <Day>Mon</Day> 
    </Time> 
</User> 
</xml> 

從這裏就可以遍歷所有的「時間」標籤和檢索Time_MainDay

$(html).find("Time").each(
     function (i,e) 
     { 
      console.log("New time tag..."); 
      console.log($(e).find("time_main").text()); 
      console.log($(e).find("day").text()); 
     } 

     ); 

如果您仍需要一個Time標籤,包裹在另一個標籤Time_main/Day夫婦:

<Time> 
    <TimeGroup> 
    <Time_Main>2-3pm</Time_Main> 
    <Day>Mon</Day> 
    </TimeGroup> 
    <TimeGroup> 
    <Time_Main>3-4pm</Time_Main> 
    <Day>Mon</Day> 
    </TimeGroup> 
</Time> 

$(html).find("Time TimeGroup").each(
     function (i,e) 
     { 
      console.log("New time tag..."); 
      console.log($(e).find("time_main").text()); 
      console.log($(e).find("day").text()); 
     } 

     ); 
+0

謝謝 - 這似乎使數據更容易通過運行,即使沒有循環。 – Sideshow

+0

是的,你有數據平坦,因爲數據確實是平坦的......如果我的假設是正確的,並且時間/數據成對出現,這是處理場景的最好和最簡單的方法 – Cranio