C#读取XML内容

/// <summary>
/// 获取一个报表的参数
/// </summary>
public static ReportAdapterSection GetReportAdapterSectionByID(string ReportID, ProfileRole RoleType, ReportTemplateType TemplateType)
{
    ReportAdapterSection reportModel = new ReportAdapterSection();
    XmlDocument xmlDoc = new XmlDocument();
    string configFile = GetReportConfigFile(RoleType, TemplateType);
    xmlDoc.Load(configFile);
    XmlNodeList nodes = xmlDoc.SelectSingleNode("ReportConfig").ChildNodes;
    List<ReportParamSection> list = new List<ReportParamSection>();

    foreach (XmlElement node in nodes)
    {
        if (node.HasChildNodes && node.Attributes["ID"].Value == ReportID)
        {
            string MainID = node.Attributes["ID"].Value;
            reportModel.ID = MainID;
            reportModel.Title = node.Attributes["Title"].Value;
            string UniqueKey = string.Empty;
            if (node.Attributes["UniqueKey"] != null)
            {
                UniqueKey = node.Attributes["UniqueKey"].Value;
            }
            reportModel.UniqueKey = UniqueKey;
            string SummaryAmtOrNum = string.Empty;
            if (node.Attributes["SummaryAmtOrNum"] != null)
            {
                SummaryAmtOrNum = node.Attributes["SummaryAmtOrNum"].Value;
            }
            reportModel.SummaryAmtOrNum = SummaryAmtOrNum;

            bool IsAddTotal = false;
            if (node.Attributes["IsAddTotal"] != null)
            {
                IsAddTotal = node.Attributes["IsAddTotal"].Value == "1" ? true : false;
            }
            reportModel.IsAddTotal = IsAddTotal;
            XmlNode paramsNode = node.SelectSingleNode("Params");
            if (paramsNode != null && paramsNode.HasChildNodes)
            {
                foreach (XmlElement item in paramsNode)
                {
                    ReportParamSection model = new ReportParamSection();
                    model.MainID = MainID;
                    model.Title = item.Attributes["ParaTitle"].Value;
                    model.Type = (ReportParaType)Enum.Parse(typeof(ReportParaType), item.Attributes["ParaType"].Value);

                    //参数
                    string paras1 = string.Empty, paras2 = string.Empty;
                    paras1 = item.Attributes["Para1Name"].Value;
                    if (item.Attributes["Para2Name"] != null)
                    {
                        paras2 = item.Attributes["Para2Name"].Value;
                    }
                    model.Params = new string[] { paras1, paras2 };
                    //默认值
                    string dvalue1 = string.Empty, dvalue2 = string.Empty;
                    if (item.Attributes["Default1Value"] != null)
                    {
                        dvalue1 = item.Attributes["Default1Value"].Value;
                    }
                    if (item.Attributes["Default2Value"] != null)
                    {
                        dvalue2 = item.Attributes["Default2Value"].Value;
                    }
                    model.DefaultValues = new string[] { dvalue1, dvalue2 };
                    //条件标题
                    string ConditionTitle = string.Empty;
                    if (item.Attributes["ConditionTitle"] != null)
                    {
                        ConditionTitle = item.Attributes["ConditionTitle"].Value;
                    }
                    model.ConditionTitle = ConditionTitle;
                    list.Add(model);
                }
            }
            XmlNode sqlNode = node.SelectSingleNode("SqlStatement");
            reportModel.MasterSqlStatement = sqlNode.InnerText;
            if (node.SelectSingleNode("Remark1") != null)
            {
                reportModel.Remark1 = node.SelectSingleNode("Remark1").Attributes["Text"].Value;
            }
            if (node.SelectSingleNode("Remark2") != null)
            {
                reportModel.Remark2 = node.SelectSingleNode("Remark2").Attributes["Text"].Value;
            }
            if (node.SelectSingleNode("Remark3") != null)
            {
                reportModel.Remark3 = node.SelectSingleNode("Remark3").Attributes["Text"].Value;
            }
        }
    }
    reportModel.ParamSettings = list;
    return reportModel;
}


XML文件内容

<?xml version="1.0" encoding="utf-8" ?>
<ReportConfig>
  <Report ID="1" Title="The InKindItem Information">
    <Params>
      <ParamItem ParaType="DateRange" ParaTitle="饋贈日期" Para1Name="@StartDate" Para2Name="@EndDate"  Default1Value="-365" Default2Value="0" ConditionTitle="InKindItemDate"/>
    </Params>
    <SqlStatement>
      <![CDATA[
select * 
from ProfileInKindItem
where InKindDate between @StartDate and @EndDate

    
        ]]>
    </SqlStatement>
  </Report>
</ReportConfig>


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值