⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlconfigloader.java

📁 这个是使用java开发的一个平台
💻 JAVA
字号:
package com.exp.fcl.configs.loaders;

import java.io.File;
import java.util.Vector;

import com.exp.fcl.configs.ConfigLoaderSupport;
import com.exp.fcl.syscfg.SystemConfig;
import com.exp.fcl.xml.EXPXMLDocument;
import com.exp.fcl.xml.EXPXMLNode;
import com.exp.fcl.xml.XMLDocumentBuilder;
import com.exp.fcl.xml.XMLException;

/**
 * 
 * <p>
 * Title: jstrd 基础技术平台
 * </p>
 * <p>
 * Description: jstrd 基础技术平台
 * </p>
 * <p>
 * Copyright: Copyright (c)  jstrd 2004-2008
 * </p>
 * <p>
 * Company: jstrd
 * </p>
 * 
 * @author zhanghf
 * @version 3.0.0.0
 */
public class XMLConfigLoader extends ConfigLoaderSupport {
    private static final String SUB_REFS_NODE = "document-includes";

    /**
     * @param subFiles
     * @param parentPath
     */
    private void initSubFiles(Vector subFiles, File parentPath) {
        File[] files = parentPath.listFiles();
        if (files != null) {
            int size = files.length;
            for (int j = 0; j < size; j++) {
                if (files[j].isFile()) {
                    String fName = files[j].getAbsolutePath();
                    if (fName.toLowerCase().endsWith(".xml")) {
                        subFiles.add(fName);
                    }
                } else if (files[j].isDirectory()) {
                    initSubFiles(subFiles, files[j]);
                }
            }
        }
    }

    public Object load(String key) {
        EXPXMLDocument document = XMLDocumentBuilder.buildDocument();
        try {
            String fileName = SystemConfig.getConfigPath() + key;
            document.loadFromFile(fileName);
            EXPXMLNode subRefsNode = document.getRoot().getChildNode(
                    SUB_REFS_NODE);
            if (subRefsNode != null) {
                int count = subRefsNode.getChildNodesCount();
                for (int i = 0; i < count; i++) {
                    EXPXMLNode subNode = subRefsNode.getChildNode(i);
                    String subFileName = subNode.getNodeValue();
                    if (!"".equals(subFileName)) {
                        EXPXMLDocument subDocument = XMLDocumentBuilder
                                .buildDocument();
                        try {
                            Vector subFiles = new Vector();
                            int lastIndex = key.lastIndexOf(File.separator);
                            String prePath = "";
                            if (lastIndex >= 0) {
                                prePath = key.substring(0, lastIndex + 1);
                            }
                            prePath = SystemConfig.getConfigPath() + prePath;
                            subFileName = prePath + subFileName;
                            File parentPath = new File(subFileName);
                            if (parentPath.exists() && parentPath.isDirectory()) {
                                initSubFiles(subFiles, parentPath);
                            } else {
                                subFiles.add(subFileName);
                            }
                            int size = subFiles.size();
                            for (int j = 0; j < size; j++) {
                                subFileName = (String) subFiles.get(j);
                                subDocument.loadFromFile(subFileName);
                                document.getRoot().merge(subDocument.getRoot());
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }
                document.getRoot().removeChildNode(SUB_REFS_NODE);
            }
            return document;
        } catch (XMLException xmlE) {
            System.err.println("\t装载资源 " + key + " 失败!");
            xmlE.printStackTrace();
        }
        return null;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -