我有一个从XML转换的大型javascript对象。它具有层次结构,xml属性(由@attributename符号定义的属性)和xml值(由#text符号定义的属性)。以下是:
<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 :(得分:2)
整理一个简单的解决方案。也许这会帮助别人:
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;
}