2013-03-05 55 views
0

我有一個使用以下層次結構的XML文件;在JavaScript中訪問不同層次級別的重複XML標籤

item 
     item 
      (item details) 
     item 
      (item details) 
    item 
     item 
      (item details) 
     item 
      (item details) 
     item 
      (item details) 

等。

我希望能夠在第一級訪問每一個「項目」標籤,併爲每個那些,訪問「項目的是(第二級)內將其細節(第三級)分配給每個第二級項目的單個對象。我可以使用jQuery爲每個item標籤進行搜索,但顯然,這兩個級別都是通過'item'標籤,而不僅僅是第一級。

如何檢索每個第一級別項目,然後將其用作訪問其中的項目的參考(以便每次處理一個第二級項目)?

試圖儘可能清楚地說出這一點,我不喜歡重複使用「item」標籤,但它很難控制。謝謝。

+0

我不是後要給我一個完整的解決方案,只是實現這一目標的一個僞代碼式的方法。我可以很明顯地編寫這個靜態代碼,循環遍歷每個項目,但是這依賴於我知道每個級別有多少項目,每次都會改變。我坐在筆和紙上試圖解決這個問題,但是我老實說,不知道從哪裏開始,以及如何區分每個級別 – 2013-03-05 19:21:43

+0

這不是重點。顯示你開始使用的是你的能力水平的重要指標,這有助於產生一個合適的答案。 – zzzzBov 2013-03-05 19:29:43

+0

我很抱歉,下次我會記住這一點。 – 2013-03-05 19:34:34

回答

3

我建議周圍做它的其他方式:

  • $("item>item")會給你只訪問第二級項目的標籤。
  • 每個二級項目,使用父()來訪問相關的第一級項目

你也可以使用$("item")讓所有的物品,然後用$(this).find("item")在循環中獲得第二個級別的項目。如果$(this).find("item")具有的長度爲0,這意味着this是第二行項目:

$("item").each(function(){ 
    var childrenItems=$(this).find("item"); 
    if (childrenItems.length) { 
     // process the children items 
    } 
}); 
+0

這正是我無法想象的邏輯,並且超出了我的預期,非常感謝。 – 2013-03-05 19:29:29