// 读取xml菜单Ext.Ajax.request({ url : cfg.menuXml, success : function(response, opts) { var doc = response.responseXML; var rootNode = doc.documentElement || doc; // 递归产生树节点 var createTreeNode = function(node) { var attr = {}; for (var i = 0; i < node.attributes.length; i++) { attr[node.attributes[i].name] = node.attributes[i].value; } var treeNode = new Ext.tree.TreeNode(attr); // 递归产生子节点 var nodes = Ext.DomQuery.select('/node', node); for (var i = 0; i < nodes.length; i++) { treeNode.appendChild(createTreeNode(nodes[i])); } return treeNode; }; // 设置树的根节点 cfg.owner.panelWest.setRootNode(createTreeNode(rootNode)); } });
解析对应XML为
<?xml version="1.0" encoding="UTF-8"?><node text="aaa"> <node text="aaa1" href="index.jsp" hrefTarget="iframe_center"/> <node text="aaa2"> <node text="aaa21" href="bbb21" hrefTarget="iframe_center"/> <node text="aaa22" href="bbb22" hrefTarget="iframe_center"/> </node> <node text="aaa3" href="bbb3" hrefTarget="iframe_center"/></node>
节点属性为任何合法的Ext.tree.TreeNode构造属性。