2017-08-02 21 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; 
     }