zoukankan      html  css  js  c++  java
  • C# XML字符串转DataTable

    今天总结一下 关于XML字符串转DataTable 方法:

    引用:using System.Xml;

    using Newtonsoft.Json;
    using System.Data;

    using System.Collections;

    首先,定义一个xml字符串来接收传过来的数据,

     string xml = context.Request["xml"]; //<ESBRequest><RequestHeader><ServiceID>35.A01.06.202</ServiceID> </RequestHeader><RequestBody><Rows>...<Row> </Row><Row>... </Row> </Rows></RequestBody></ESBRequest>

     ESBRequest request = XMLUntils.Deserialize(typeof(ESBRequest), xml) as ESBRequest;//将xml 反序列化为  ESBRequest类

     public static object Deserialize(Type type, string xml)
            {
                try
                {
                    using (StringReader sr = new StringReader(xml))
                    {
                        XmlSerializer xmldes = new XmlSerializer(type);
                        return xmldes.Deserialize(sr);
                    }
                }
                catch (Exception e)
                {
                    return null;
                }
            }
    // 注意: 生成的代码可能至少需要 .NET Framework 4.5 或 .NET Core/Standard 2.0。
        [System.SerializableAttribute]
        [System.ComponentModel.DesignerCategoryAttribute("code")]
        [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
        [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
        public partial class ESBRequest
        {
            private ESBEntryAccessControl accessControlField;
    
            private ESBEntryRequestHeader RequestHeaderField;
    
            private string messageBodyField;
    
            /// <summary>
            /// AccessControl
            /// </summary>
            public ESBEntryAccessControl AccessControl
            {
                get
                {
                    return accessControlField;
                }
    
                set
                {
                    accessControlField = value;
                }
            }
    
            /// <summary>
            /// RequestHeader
            /// </summary>
            public ESBEntryRequestHeader RequestHeader
            {
                get
                {
                    return RequestHeaderField;
                }
    
                set
                {
                    RequestHeaderField = value;
                }
            }
    
            /// <summary>
            /// RequestBody
            /// </summary>
            [System.Xml.Serialization.XmlTextAttribute]
            public string RequestBody
            {
                get
                {
                    return messageBodyField;
                }
    
                set
                {
                    messageBodyField = value;
                }
            }
        }

     XmlDocument doc = new XmlDocument();

    doc.LoadXml(xml);
    XmlNode root = doc.FirstChild;

     request.RequestBody = PublicFunction.RemoveAttribute(root);

    System.Data.DataTable dsInterNet = ConvertXMLToDt(request.RequestBody);

      public static DataTable ConvertXMLToDt(string xmlData)
            {
                StringReader stream = null;
                XmlTextReader reader = null;
    
                DataSet xmlDS = new DataSet();
                stream = new StringReader(xmlData);
                //从stream装载到XmlTextReader
                reader = new XmlTextReader(stream);
                xmlDS.ReadXml(reader);
                reader.Close();
                return xmlDS.Tables[0];
            }
  • 相关阅读:
    C++学习基础十六-- 函数学习笔记
    OpenGL ES平移矩阵和旋转矩阵的左乘与右乘效果
    C++学习基础十五--sizeof的常见使用
    C++学习基础十四——基础类型vector
    XDGE_DefalutLit 物理渲染总结-01
    XDGEUnity XDGEPipeLine
    XDGE Render-启程
    一次BSSDF引发的惨案----搬家狂删除
    XDGE_RayMarchine 1- 利用Frag Shader绘制图形
    XDGE_AccelerationAlgorithms 01
  • 原文地址:https://www.cnblogs.com/ysaw/p/13361516.html
Copyright © 2011-2022 走看看