jsTree - может принимать данные в нескольких форматах: HTML, JSON и XML. Можно легко открывать, закрывать, переименовывать, создавать и удалять узлы. jsTree поддерживает "drag & drop" и позволяет выделять несколько элементов. Внешний вид jsTree легко настраивается с помощью CSS.

Javascript TreeView Component

Демо: http://www.jstree.com/jsTree/examples/
Лицензия: MIT, GPL License