`
xinyoulinglei
  • 浏览: 126366 次
社区版块
存档分类
最新评论

XML的TreeConfig

    博客分类:
  • java
xml 
阅读更多
/**
     * <?xml version="1.0" encoding="UTF-8"?>
<root>
    <tree id="root" useArrows="false">
        <node>
            <id>unifyProxy</id>
            <parentId></parentId>
            <text>开通接口</text>
            <method></method>
        </node>
        <node expanded="false">
            <id>corpManager</id>
            <parentId>unifyProxy</parentId>
            <text>集团管理</text>
            <method></method>
        </node>
        <node>
            <id>corp</id>
            <parentId>corpManager</parentId>
            <text>集团</text>
            <method>initBusinessGroup()</method>
      </node>      
    </tree>
</root>

TreeNode:
     private String id;
    
     private String parentId;
    
     private String text;
    
     private String method;
    
Tree:
    private String id = null;

    private List<TreeNode> nodeList = new ArrayList<TreeNode>();



     */
    private static final Map<String, Tree> treeMap = new HashMap<String, Tree>();

    private String nodeConfigFile;

    public static Map<String, Tree> getTreeMap()
    {
        return treeMap;
    }

    /**
     * 读取配置文件
     */
    public void init()
    {
        try
        {
//            String cmClientPath = SystemLoader.getCmClientPath();
           // File configFile = new File(cmClientPath + File.separator + nodeConfigFile.trim());
            File configFile = new File("D://我的文档//workspace/CMClient//WebRoot//WEB-INF//conf//common//tree_config.xml");
           
            SAXReader reader = new SAXReader();
            Document document = reader.read(configFile);
            parse(document);

        }
        catch (DocumentException e)
        {
            e.printStackTrace();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }

    /**
     * 解析配置值
     * @param document
     * @author  liudong
     * @throws Exception 抛出异常
     */
    private void parse(Document document)
        throws Exception
    {
        //Tree就是
        Tree tree = null;
        TreeNode treeNode = null;
        final Element root = document.getRootElement();
        final List< ? > trees = root.elements("tree");
        for (final Iterator< ? > iterator = trees.iterator(); iterator.hasNext();)
        {
            Element treeElement = (Element) iterator.next();

            tree = new Tree();
            parseTreeAttribute(tree, treeElement);

            List< ? > nodes = treeElement.elements("node");
            for (final Iterator< ? > iter = nodes.iterator(); iter.hasNext();)
            {

                final Element nodeElement = (Element) iter.next();
               
                treeNode = new TreeNode();

                parseNodeAttribute(treeNode, nodeElement);
               
                parseNodeValue(treeNode,nodeElement);

                tree.getNodeList().add(treeNode);
            }
            treeMap.put(tree.getId(), tree);
        }
    }

    private void parseTreeAttribute(Tree tree, Element element)
    {

        //
        final Attribute idAtt = element.attribute("id");
        tree.setId("root");
        if (null != idAtt && ParamChecking.isBlank(idAtt.getValue()))
        {
            tree.setId(UnifyUtils.processTrim(idAtt.getValue()));
        }

        final Attribute useArrowsAtt = element.attribute("useArrows");
        if (null != useArrowsAtt && "false".equals(UnifyUtils.processTrim(useArrowsAtt.getValue())))
        {
            tree.getTreeOptions().setUseArrows(false);
        }

    }

    private void parseNodeAttribute(TreeNode node, Element element)
    {
        final Attribute expanded = element.attribute("expanded");
        if (null != expanded && "false".equals(expanded.getValue()))
        {
            node.getTreeNodeOptions().setExpanded(false);
        }

    }

    private void parseNodeValue(TreeNode node, Element element)
    {
        org.dom4j.Node idNode = element.element("id");
        org.dom4j.Node textNode = element.element("text");
        org.dom4j.Node parentIdNode = element.element("parentId");
        org.dom4j.Node methodNode = element.element("method");

        node.setId(idNode.getText().trim());
        node.setParentId(parentIdNode.getText().trim());
        node.setText(textNode.getText().trim());
        node.setMethod(methodNode.getText().trim());
    }

    /**
     * @return Returns the nodeConfigFile.
     */
    public String getNodeConfigFile()
    {
        return nodeConfigFile;
    }

    /**
     * @param nodeConfigFile The nodeConfigFile to set.
     */
    public void setNodeConfigFile(String nodeConfigFile)
    {
        this.nodeConfigFile = nodeConfigFile;
    }
分享到:
评论

相关推荐

    xml2axml反编译AndroidManafest文件

    使用java工具xml2axml.jar反编译AndroidManafest文件 通过xml2axml.jar工具反编译AndroidManafest文件 还原AndroidManafest.xml详细过程: 1、获取到apk 2、解压获取里面的AndroidManifest.xml文件 3、在xml2axml....

    tinyxml与tinyxml2

    TinyXML和TinyXML2是两个小型的开源库,专门用于解析和操作XML(eXtensible Markup Language)文档。这两个库都是用C++编写的,为C++开发者提供了方便的接口来读取、写入和操作XML数据。下面将详细介绍这两个库的...

    pugixml读写XML示例

    pugixml是一款轻量级、高性能的C++库,专为XML解析和操作而设计。这个库由Artemev开发,提供了简单易用的API,使得在C++项目中处理XML文档变得非常便捷。本示例将详细介绍如何使用pugixml进行XML的读取和写入操作。 ...

    xml转javaBean,javaBean转xml,xml标签大小写问题,以及对xml特殊符号的处理

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用在软件开发、Web服务、配置文件等领域。本文将深入探讨XML与JavaBean之间的转换、XML标签的大小写规则、XML特殊符号的处理以及CDATA的生成。 ...

    XML解析工具- TinyXML2 -源代码 - C++

    TinyXML-2 是一个简单、小型、高效的 C++ XML 解析器,可以被轻松集成到其他程序中。它使用文档对象模型(DOM)的方式解析XML,可解析 XML 文档,并根据该文档构建可读取、修改和保存的文档对象模型。 作为XML解析...

    pugixml 一个很好用的XML类

    **Pugixml详解:一个高效易用的XML解析库** 在编程中,XML(Extensible Markup Language)是一种被广泛使用的数据交换格式,特别是在跨平台通信、配置文件和数据存储等领域。为了处理XML文档,开发者通常需要依赖...

    andxml xml解密工具

    andxml汉化版是一个xml文件反编译工具,可与APKTOOL反编译配合使用,APK文件使用APKTool反编译生成XML文件后,就可以直接通过它进行汉化编辑 注意: 1、一键机器翻译会造成某些代码出现翻译错误现象,请人工识别。...

    DBMS_XMLDOM DBMS_XMLPARSER DBMS_XMLQUERY 文档

    Oracle数据库系统提供了强大的XML处理能力,这主要体现在其内置的几个PL/SQL包上,如DBMS_XMLDOM、DBMS_XMLPARSER和DBMS_XMLQUERY。这些包为开发者提供了处理XML文档的一整套工具,使得在数据库环境中进行XML数据的...

    tinyxml2解析XML文件读取数据

    - 库的主要类包括`XMLDocument`(XML文档对象)、`XMLElement`(XML元素)、`XMLText`(XML文本)、`XMLComment`(XML注释)和`XMLAttribute`(XML属性)等。 2. **解析XML文件** - 使用`XMLDocument::LoadFile()...

    PB解析XML字符串 把XML 变为数据窗口

    标题中的“PB解析XML字符串 把XML 变为数据窗口”指的是使用PowerBuilder(PB)这一编程工具,处理XML格式的数据,并将其转换成数据窗口对象的过程。数据窗口是PowerBuilder中的一个核心组件,用于显示、编辑和管理...

    Xml完全操作 XML增删改查

    XML(eXtensible Markup Language)是一种用于标记数据的语言,其设计目的是传输和存储数据,而非显示数据。在IT行业中,XML因其结构清晰、可扩展性强的特点,被广泛应用于数据交换、配置文件、Web服务等领域。本文...

    基于tinyxml2的xml操作库再封装

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于配置文件、数据交换、文档存储等领域。TinyXML2是轻量级的C++ XML解析库,它提供了简单、直接的方式来读写XML文档。本项目是基于tinyxml2...

    matlab读取XML,XML转换为matlab

    XML(eXtensible Markup Language)是一种用于存储和交换数据的标记语言,广泛应用于软件开发、数据存储和网络通信等领域。Matlab作为一个强大的数值计算和数据分析环境,也提供了与XML交互的功能,这主要通过XML ...

    XMLParser(XML解析代码 C++版)

    XMLParser是一种用于解析XML文档的C++实现,它旨在提供简单、小巧且稳定的解决方案,以处理XML数据。XML,即可扩展标记语言,是用于存储和传输数据的标准格式,广泛应用于配置文件、数据交换和文档结构化等领域。XML...

    MFC保存控件数据到xml及读取xml数据到控件

    在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 框架与XML库,如TinyXML2,来实现保存控件数据至XML文件以及从XML文件中读取数据回控件的功能。这对于创建应用程序配置文件或者保存用户自定义...

    Qt读写Xml文件,QTreeWidget显示Xml和导出Xml文件

    在Qt框架中,XML文件是一种常见的数据存储格式,它提供了结构化的数据表示方式,便于程序读取和写入。QTreeWidget是Qt提供的一种用于显示树状结构数据的控件,它可以很好地展示XML文件的层次结构。QXml是Qt中的XML...

    java一键xml转map,一键map转xml工具类

    在Java编程中,XML(可扩展标记语言)和Map(映射)是两种常见的数据存储和交换格式。XML因其结构化和易于解析的特性,在数据交换和配置文件中广泛使用,而Map则作为Java中存储键值对的高效数据结构。在实际开发中,...

    STM32解析XML

    在本文中,我们将深入探讨如何在STM32F107上使用minixml库解析XML(可扩展标记语言)文档,这对于那些初次尝试在嵌入式环境中处理XML数据的开发者来说,是非常有价值的。 XML是一种通用的数据交换格式,它允许结构...

    tinyxml2解析和创建xml样例

    TinyXML2是一个小型、快速且易于使用的C++库,用于解析和生成XML文档。这个库的设计目标是简单、高效,并且适用于嵌入式系统。在本文中,我们将深入探讨如何使用TinyXML2来解析和创建XML文件,特别是涉及到CDATA区段...

    XML校验工具,可以用来进行XML合法性检验

    ### XML校验工具详解 #### 一、XML与W3C简介 - **XML(Extensible Markup Language)**:一种标记语言,旨在定义一套规则,用于结构化文档中数据的存储和传输。XML的设计目标是尽可能地保持数据的原始性和纯粹性,...

Global site tag (gtag.js) - Google Analytics