当柳上原的风吹向天际的时候...

真正的快乐来源于创造

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks
XML文件如下:
<?xml version="1.0" encoding="GBK"?>

<menuItems>
    
<name>根节点</name>
    
<icon></icon>
    
<panelName></panelName>
    
<mothodName></mothodName>
    
<args></args>

    
<menuItem>
        
<name>节点一</name>
        
<icon>folder_fromFile.gif</icon>
        
<panelName>
            com.heyang.view.panel.content.folder.addfromfile.AddCategoryFromFilePanel
        
</panelName>
        
<mothodName></mothodName>
        
<args></args>
    
</menuItem>
    
<menuItem>
        
<name>节点二</name>
        
<icon>folder_attribute.gif</icon>
        
<panelName>
            com.heyang.view.panel.content.folder.attribute.AttributeMngPanel
        
</panelName>
        
<mothodName></mothodName>
        
<args></args>
    
</menuItem>
    
<menuItem>
        
<name>节点三</name>
        
<icon>folder_transfer.gif</icon>
        
<panelName>
            com.heyang.view.panel.content.folder.transfer.FolderTransferPanel
        
</panelName>
        
<mothodName></mothodName>
        
<args></args>
    
</menuItem>
</menuItems>

读取例程:
 /**
     * 按照XML文件建立一棵树
     * 
     * 
@author:何杨
     * @date:2009-12-22
     * @time:上午08:13:09
     
*/
    @SuppressWarnings(
"unchecked")
    
private void buildTree(){
        
// 建立树节点
        DefaultMutableTreeNode root = null;
                
        
try {
            SAXReader reader 
= new SAXReader();
            String xmlFile 
= TreeMenuPanel.class.getResource("/text.xml").getPath()
                    .toString();
            
            File file
=new File(xmlFile);
            
if(file.exists()==false){
                DlgUtil.popupErrorDialog(
"无法找到文件"+xmlFile+".");
                
return;
            }
            
            Document document 
= reader.read(file);
            Element rootElm 
= document.getRootElement();
            
// 遍历XML生成节点树
            root=getNode(rootElm);
        } 
catch (Exception ex) {
            ex.printStackTrace();
        }
        
        
// 将节点树赋予树组件
        DefaultTreeModel model = (DefaultTreeModel) tree.getModel();
        model.setRoot(root);
        model.reload();    
        tree.updateUI();
    }
    
    
/**
     * 递归取得节点
     * 
     * 
@author:何杨
     * @date:2010-1-11
     * @time:上午08:31:12
     * 
@param elm
     * 
@return
     
*/
    @SuppressWarnings(
"unchecked")
    
private DefaultMutableTreeNode getNode(Element elm){        
        String name
=elm.elementText("name");
        String icon
=elm.elementText("icon");
        String panelName
=elm.elementText("panelName");
        String mothodName
=elm.elementText("mothodName");
        String args
=elm.elementText("args");
        
        MenuItem menuItem
=new MenuItem(name,icon,panelName,mothodName,args);
        DefaultMutableTreeNode leaf 
= new DefaultMutableTreeNode();
        leaf.setUserObject(menuItem);
        
        List
<Element> elms = elm.elements("menuItem");
        
for (Element element : elms) {
            leaf.add(getNode(element));
        }    
        
        
return leaf;
    }


posted on 2010-01-14 21:56 何杨 阅读(682) 评论(0)  编辑  收藏