import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;import org.apache.log4j.Logger;
public class ParamFileConfigUtil {

public static final String SP_ID = "SP_ID";

public static final String BASE_PATH = "BASE_PATH";

public static final String BASE_SPINFO_PATH = "BASE_SPINFO_PATH";

public static final String BASE_SPSERVICE_PATH = "BASE_SPSERVICE_PATH";

public static final String BASE_BUSINESS_PATH = "BASE_BUSINESS_PATH";

public static final String BASE_PRODUCTINFO_PATH = "BASE_PRODUCTINFO_PATH";

public static final String BASE_USERINFO_PATH = "BASE_USERINFO_PATH";

public static final String BASE_NumToGWMapInfo_PATH = "BASE_NumToGWMapInfo_PATH";

private static Logger logger = Logger.getLogger(ParamFileConfigUtil.class); private final static String CONFIG_FILE_NAME = "/Param-File-Config.xml"; private Document configDocument; private static ParamFileConfigUtil instance = new ParamFileConfigUtil(); public static String getParameter(String name) {
String xpath = "/Param-Configs/param[@name='" + name + "']/@value";  //???????
Node node = instance.configDocument.selectSingleNode(xpath);        //?????????????
if (node == null)
{
logger.warn("配置参数[" + name + "]不存在");
return "";
}
return node.getText();
} private ParamFileConfigUtil() {
init();
} public static String sourcePath(){
return  getParameter("SOURCE_PATH");
}

private void init() {
SAXReader reader = new SAXReader();
try
{
configDocument = reader.read(ParamFileConfigUtil.class
.getResourceAsStream(CONFIG_FILE_NAME)); //???????
}
catch (DocumentException exp)
{
exp.printStackTrace();
logger.warn(CONFIG_FILE_NAME + "文件读取错误");
configDocument = DocumentHelper.createDocument();
configDocument.addElement("Param-Configs");
}
}
}

解决方案 »

  1.   


    getResourceAsStream方法是从类路径中加载资源文件。
    依照你的程序,是去找classes目录下的Param-File-Config.xml文件。
      

  2.   

    这两行是用XPath来查询XML文档中的某节点。
    查的是
    Param-Configs根元素下的param子元素的value属性值,要求该param元素的name属性为指定的name
      

  3.   

    就是配置文件Param-File-Config.xml中Param-Configs根元素下的param子元素的value属性值,要求该param元素的name属性为指定的name?
    Node node = instance.configDocument.selectSingleNode(xpath);这个就是取这个节点啊?还有return node.getText();
      

  4.   

    对的。return node.getText()就是返回value属性的字符串值。