public class ConfigInfo
{
public static ParametersHelper Parameters
{
get { return new ParametersHelper(); }
} public class ParametersHelper
{
string fileName = Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase,JobConstValue.BUSINESS_CONFIG_FILE);
public PerParameter this[string name]
{
get
{
string parameterStr = Utility.ExecuteXPathInFile(fileName, string.Format(@"/Parameters/Parameter[@name='{0}']", name.Trim()));
if (parameterStr != null)
{
PerParameter returnObj = new PerParameter(name, parameterStr);
return returnObj;
}
else
{
return null;
}
}
} public class PerParameter
{
public PerParameter(string name, string parameterStr)
{
m_ParameterStr = parameterStr;
m_Name = name;
m_Value = Utility.ExecuteXPathInString(parameterStr, @"/Parameter/text()");
} string m_ParameterStr; private string m_Name;
public string Name { get { return m_Name; } } public PerParameterAttributes Attributes
{
get
{
string[] temp = m_ParameterStr.GetSubString(@"(?<=\<Parameter\s+).+.(?=/?\>)");
if (temp != null && temp.Length > 0)
return new PerParameterAttributes(temp[0]);
else
return null;
}
} string m_Value;
public string Value { get { return m_Value; } } public List<PerParameter> Parameters
{
get
{
List<PerParameter> list = new List<PerParameter>();
XmlDocument doc = new XmlDocument();
doc.LoadXml(m_ParameterStr);
XmlNodeList nodes = doc.SelectNodes("/Parameter/Parameter");
if (nodes != null && nodes.Count > 0)
{
foreach (XmlNode item in nodes)
{
list.Add(new PerParameter(item.Attributes["name"].InnerText, item.OuterXml));
}
}
return list;
}
} public PerParameter this[string name]
{
get
{
string parameterStr = Utility.ExecuteXPathInString(m_ParameterStr, string.Format(@"/Parameter/Parameter[@name='{0}']", name.Trim()));
if (parameterStr != null)
return new PerParameter(name, parameterStr);
else
return null;
}
}
} public class PerParameterAttributes
{
public PerParameterAttributes(string attributes)
{
m_Attributes = attributes;
} string m_Attributes = string.Empty; public string this[string name]
{
get
{
string[] results = m_Attributes.GetSubString(string.Format(@"(?<={0}\s*="").+", name));
if (results != null && results.Length > 0)
{
return results[0].ReplaceString(@""".*", string.Empty);
}
else
return null;
}
}
}
}
} 配置文件示例:
<?xml version="1.0"?>
<Parameters>
<Parameter name="WarehouseNumber">
<Parameter name="USA">9N</Parameter>
<Parameter name="USB">9X</Parameter>
<Parameter name="RoseWill">9R</Parameter>
</Parameter>
<Parameter name="HoldReason">
<Parameter name="B2BHoldReason">B2B Order waiting for approval</Parameter>
<Parameter name="APIHoldReason">Hold By RuleSet API</Parameter>
<Parameter name="HoldReasonForSO">Hold S.O</Parameter>
</Parameter>
<Parameter name="TestAccount">
<Parameter name="Account">7084500</Parameter>
</Parameter> <Parameter name="SpecialItems">
<Parameter name="UPSLabelItem">99-993-001</Parameter>
<Parameter name="GiftCardItem">00-999-157</Parameter>
</Parameter> <Parameter name="DiscountAllocationRegex">
<Parameter name="RegexValue">^(DISCOUNT FOR COMBO #){1}\d{1,10}$|^(DISCOUNT FOR COMBO #){1}\d{1,10}( GIFT){1}$|^(DISCOUNT FOR AUTOADD #){1}\d{1,10}$</Parameter>
</Parameter> </Parameters>

  

  

Parameter配置文件获取的更多相关文章

  1. Spring获取ApplicationContext方式,和读取配置文件获取bean的几种方式

    转自:http://chinazhaokeke.blog.163.com/blog/static/109409055201092811354236  Spring获取ApplicationContex ...

  2. Springboot配置文件获取系统环境变量的值

    注意,这里说的是获取系统环境变量的值,譬如Windows里配置的JAVA_HOME之类的,可以直接在Springboot的配置文件中获取. 我们经常使用一些docker管理平台,如DaoCloud.r ...

  3. spring 配置文件 获取变量(PropertyPlaceholderConfigurer)

    转自:https://hbiao68.iteye.com/blog/2031006 1.Spring的框架中,org.springframework.beans.factory.config.Prop ...

  4. Smarty3——从配置文件获取的变量

    再使用配置变量前要 引入配置变量即:{$config_load file=‘file_path’}$marty3中可以从配置文件中 用 # 号包起来引用配置文件中的变量({#config_var_na ...

  5. MySpring dataSource从配置文件获取

    大神就不看了.本篇是一个人笔记. 原来的数据库配置文件是写死的. 看代码:Mybatis的配置文件 <bean id="dataSource" class="org ...

  6. Mybatis根据配置文件获取session(多数据源)

    1.config.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configura ...

  7. 第四课:通过配置文件获取对象(Spring框架中的IOC和DI的底层就是基于这样的机制)

    首先在D盘创建一个文件hero.txt,内容为:com.hero.Hero(此处必须是Hero的完整路径) 接下来是Hero类 package com.hero; public class Hero ...

  8. Java 获取到配置文件信息

    Java程序将数据库或者服务器IP写入到代码中,难免缺少灵活性. 如果写入到配置文件,部署到不通服务器上,只需要修改配置文 件即可. Java怎么读取配置文件 /** * 获取到配置文件信息 * @p ...

  9. linux 获取命令或配置文件的帮助信息 man、whatis、apropos、--help

    man /usr/bin/man man [命令或配置文件]获取帮助信息 man ls /-lman date/-d man services //不需要添加绝对路径/etc/services NAM ...

随机推荐

  1. 了解 JavaScript (6)– 广告条(Banner)

    在 Web 上冲浪时,常常会见到定期在图像之间切换的广告条.我们可以用 JavaScript 来实现,重复循环显示它们. 创建循环的广告条 RotatingBanner.html 页面中在循环的广告条 ...

  2. ngnix编译遇到的问题.

    总结:先后遇到libz库文件没有正确的链接和pcre库文件没有正确的链接 1./configure后提示需要zlib 2.locate zlib,系统中没有zlib的共享库so文件,但是有一些头文件, ...

  3. easyui datagrid去掉加载提示

    掉这个等待效果的方法:查了easyui的api,datagrid没有去掉这个遮罩层的方法或者属性,在网上找了半天也没人碰到相同的问题(可能比较easy就解决了吧).还好easyui是开源的,就研究它的 ...

  4. gradle 如何操作命令行

    如题: 官方做法: task startApp(type: Exec){task -> workingDir mWorkingDirRoot commandLine 'cd'} 后来我看到这篇文 ...

  5. ab 测试模块高并发

    转载:http://gekie.iteye.com/blog/1704235 作为程序员,写好一个模块后,不知道这个模块在高并发的情况下能不能平稳过渡,这里所说的平稳过渡是指,在高并发的情况下还能正常 ...

  6. Linux之crontab

    一  cron crond位于/etc/rc.d/init.d/crond 或 /etc/init.d 或 /etc/rc.d /rc5.d/S90crond,最总引用/var/lock/subsys ...

  7. elasticsearch-cn-out-of-box

    elasticsearch-cn-out-of-box https://github.com/hangxin1940/elasticsearch-cn-out-of-box 为elasticsearc ...

  8. ecshop登陆后价格可见,会员注册登陆才能显示价格

    打开模版文件夹里面的goods.dwt 查找{$lang.shop_price}<font class="price" id="ECS_SHOPPRICE" ...

  9. how to use javap command

    SYNOPSIS javap [options] classes DESCRIPTION The javap command is called "disassembler" be ...

  10. CentOS 7.2 安装配置 Percona Server

    个人比较喜欢 MYSQL 的轻量,今天花了一点时间把阿里云上的 MYSQL5.7 换成了 Percona-Server ,Percona 是一个开源的 MySQL 衍生版.InnoDB的数据库引擎使得 ...