C# xml 转换为实体对象


 

//xml文件

<?xml version = "1.0" encoding="GB2312" ?>
<DOCUMENT>
    <RETURN_CODE>000000</RETURN_CODE>
        <RETURN_MSG></RETURN_MSG>  
    <QUERYORDER>
        <MERCHANTID>111</MERCHANTID>
        <BRANCHID>222</BRANCHID> 
     </QUERYORDER>
  <QUERYORDER>
        <MERCHANTID>22222</MERCHANTID>
        <BRANCHID>333333</BRANCHID> 
     </QUERYORDER>
</DOCUMENT> 

 

 

 

 //实体类

 /// <summary>
    /// 订单查询
    /// </summary> 
    [Serializable]
    [XmlRoot("DOCUMENT")]
    public class ResQueryOrder
    {
        /// <summary>
        /// 交易返回码,成功时总为000000
        /// </summary>
        public string RETURN_CODE { get; set; }
        /// <summary>
        /// 交易返回提示信息,成功时为空
        /// </summary>
        public string RETURN_MSG { get; set; }

/// <summary> /// 订单集合 /// </summary> [XmlElementAttribute(ElementName = "QUERYORDER")] public List<QUERYORDER> QUERYORDER { get; set; } } /// <summary> /// 订单集合 /// </summary> [Serializable] public class QUERYORDER { /// <summary> /// 商户代码 /// </summary> public string MERCHANTID { get; set; } /// <summary> /// 商户所在分行 /// </summary> public string BRANCHID { get; set; } }
  //调用代码
string xml = System.IO.File.ReadAllText(@"E:\xx.xml");
  ResQueryOrder resQuery = XmlToModel<ResQueryOrder>(xml);

 

        /// <summary>  
        /// xml 转换为 model  
        /// </summary>  
        public static T XmlToModel<T>(string xml)
        {
            xml = Regex.Replace(xml, @"<\?xml*.*?>", "", RegexOptions.IgnoreCase);
            XmlSerializer xmlSer = new XmlSerializer(typeof(T));
            using (StringReader xmlReader = new StringReader(xml))
            {
                return (T)xmlSer.Deserialize(xmlReader);
            }
        }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM