2017-08-02 64 views
1

我有一個從XML轉換而來的大型javascript對象。它具有層次結構,xml屬性(由@attributename符號定義的屬性)和xml值(由#text符號定義的屬性)。所以下面:將多級javascript對象輸出到html列表中

<parentnode length="5"> 
    <childnode length="22" depth="45">This is a child node</childnode> 
</parentnode> 

創建一個對象,看起來像這樣:

parentnode { 
    @length: "22" 
    childnode { 
     @depth: "45", 
     @text: "This is a child node" 
    } 
} 

,我想創建一個HTML列表,看起來像這樣:

<ul> 
    <li data-length="22">parentnode 
     <ul> 
      <li data-depth="45">childnode: This is a child node</li> 
     </ul> 
    </li> 
</ul> 

我試着各種解決方案,但它們都不適用於嵌套在具有各種數據類型的對象中的對象。

+0

你已經檢查過了嗎? https://stackoverflow.com/questions/5127554/parse-xml-to-ul它看起來像你只需要解析一個xml對象到一個有序列表,不是嗎? – briosheje

+0

@briosheje是的,但我'尋找不同的佈局。該解決方案專注於菜單系統的網址陣列。 – symlink

回答

0

把一個簡單的解決方案。也許這會幫助別人:

 function createHtmlList(obj){ 
      var output = ""; 
      Object.keys(obj).forEach(function(k) { 
       if (typeof obj[k] == "object" && obj[k] !== null){ 
        output += "<li>" + htmlSpecialChars(k) + "<ul>"; 
        output += createHtmlList(obj[k]); 
        output += "</ul></li>"; 
       }else{ 
        output += "<li>" + k + " : " + obj[k] + "</li>"; 
       } 
      }); 
      return output; 
     }