Вывести многоуровневый объект JavaScript в список HTML

1

У меня есть большой объект javascript, преобразованный из XML. Он имеет иерархию, атрибуты 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
    ты уже проверил это? stackoverflow.com/questions/5127554/parse-xml-to-ul похоже, вам просто нужно разобрать объект xml в упорядоченном списке, не так ли? ..
  • 0
    @briosheje Да, но я ищу другой макет. Это решение фокусируется на массивах URL для системы меню.
Теги:
javascript-objects
html-lists

1 ответ

1

Сложите простое решение. Может быть, это поможет кому-то еще:

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;
}
  • 0
    @ TheCarver мое решение в Javascript.
  • 1
    Мои извинения, я прокомментировал неправильный ответ !! Я не мог отменить свое отрицательное голосование, если в ваш ответ не были внесены изменения, поэтому я просто убрал отформатированный код и снова проголосовал за вас: /
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню