📄 xmlconfigloader.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 + -