XML与DataSet的相互转换类

Unity迁移到Godot:节点树思维替代组件堆叠的迁移方法论 游戏引擎迁移本质上是开发范式的转换,而非简单的代码重写。Unity基于MonoBehaviour的组件化架构与Godot以节点树(Node Tree)和场景(Scene)为核心的对象模型存在根本性差异,这决定了迁移必须从执行模型(如_process/_physics_process替代Update)、资源管理(preload vs Resources.Load)和事件机制(Signal信号驱动替代轮询)三方面重构。掌握GDScript原生语法、理解信号-槽通信、善用PackedScene实例化等关键技术,不 阅读详情

送给大家一个XML与DataSet的相互转换的类:

XmlDatasetConvert 该类提供了四种方法:

1、将xml对象内容字符串转换为DataSet

2、将xml文件转换为DataSet

3、将DataSet转换为xml对象字符串

4、将DataSet转换为xml文件

 

XmlDatasetConvert.cs

using System;

using System.Collections.Generic;

using System.Text;

using System.Data;

using System.IO;

using System.Xml;

 

namespace XmlDesign

{

    class XmlDatasetConvert

    {

        //将xml对象内容字符串转换为DataSet

        public static DataSet ConvertXMLToDataSet(string xmlData)

        {

            StringReader stream = null;

            XmlTextReader reader = null;

            try

            {

                DataSet xmlDS = new DataSet();

                stream = new StringReader(xmlData);

                //从stream装载到XmlTextReader

                reader = new XmlTextReader(stream);

                xmlDS.ReadXml(reader);

                return xmlDS;

            }

            catch (System.Exception ex)

            {

                throw ex;

            }

            finally

            {

                if (reader != null) reader.Close();

            }

        }

 

        //将xml文件转换为DataSet

        public static DataSet ConvertXMLFileToDataSet(string xmlFile)

        {

            StringReader stream = null;

            XmlTextReader reader = null;

            try

            {

                XmlDocument xmld = new XmlDocument();

                xmld.Load(xmlFile);

 

                DataSet xmlDS = new DataSet();

                stream = new StringReader(xmld.InnerXml);

                //从stream装载到XmlTextReader

                reader = new XmlTextReader(stream);

                xmlDS.ReadXml(reader);

                //xmlDS.ReadXml(xmlFile);

                return xmlDS;

            }

            catch (System.Exception ex)

            {

                throw ex;

            }

            finally

            {

                if (reader != null) reader.Close();

            }

        }

 

        //将DataSet转换为xml对象字符串

        public static string ConvertDataSetToXML(DataSet xmlDS)

        {

            MemoryStream stream = null;

            XmlTextWriter writer = null;

 

            try

            {

                stream = new MemoryStream();

                //从stream装载到XmlTextReader

                writer = new XmlTextWriter(stream, Encoding.Unicode);

 

                //用WriteXml方法写入文件.

                xmlDS.WriteXml(writer);

                int count = (int)stream.Length;

                byte[] arr = new byte[count];

                stream.Seek(0, SeekOrigin.Begin);

                stream.Read(arr, 0, count);

 

                UnicodeEncoding utf = new UnicodeEncoding();

                return utf.GetString(arr).Trim();

            }

            catch (System.Exception ex)

            {

                throw ex;

            }

            finally

            {

                if (writer != null) writer.Close();

            }

        }

 

        //将DataSet转换为xml文件

        public static void ConvertDataSetToXMLFile(DataSet xmlDS,string xmlFile)

        {

            MemoryStream stream = null;

            XmlTextWriter writer = null;

 

            try

            {

                stream = new MemoryStream();

                //从stream装载到XmlTextReader

                writer = new XmlTextWriter(stream, Encoding.Unicode);

 

                //用WriteXml方法写入文件.

                xmlDS.WriteXml(writer);

                int count = (int)stream.Length;

                byte[] arr = new byte[count];

                stream.Seek(0, SeekOrigin.Begin);

                stream.Read(arr, 0, count);

 

                //返回Unicode编码的文本

                UnicodeEncoding utf = new UnicodeEncoding();

                StreamWriter sw = new StreamWriter(xmlFile);

                sw.WriteLine("<?xml version=/"1.0/" encoding=/"utf-8/"?>");

                sw.WriteLine(utf.GetString(arr).Trim());

                sw.Close();

            }

            catch( System.Exception ex )

            {

                throw ex;

            }

            finally

            {

                if (writer != null) writer.Close();

            }

        }

 

    }

}

 

使用示例

using System;

using System.Collections.Generic;

using System.Text;

using System.Xml;

using System.Data;

 

namespace XmlDesign

{

    class Program

    {

        static void Main(string[] args)

        {

            DataSet ds = new DataSet();

 

            转换一个XML文件(本地/网络均可)为一个DataSet#region 转换一个XML文件(本地/网络均可)为一个DataSet

            //http://news.baidu.com/n?cmd=1&class=sportnews&tn=rss

            //F:/study/001CSharp_Study/002Source/XmlDesign/XmlDesign/Save_Plan.xml

            ds = XmlDatasetConvert.ConvertXMLFileToDataSet(@"http://news.baidu.com/n?cmd=1&class=sportnews&tn=rss");

            Console.WriteLine("数据集名为/"{0}/",包含{1}个表", ds.DataSetName, ds.Tables.Count);

            foreach(DataTable dt in ds.Tables)

            {

                PrintTableName(dt.TableName);

            };

            #endregion

 

            构造一个DataSet,并转换为XML字符串#region 构造一个DataSet,并转换为XML字符串

            DataSet ds1 = new DataSet();

            DataTable dt1 = new DataTable();

            dt1.TableName = "test";

            dt1.Columns.Add("id");

            dt1.Columns.Add("name");

            dt1.Rows.Add("i001", "hekui");

            dt1.Rows.Add("i002", "liyang");

 

            DataTable dt2 = new DataTable();

            dt2.TableName = "test1";

            dt2.Columns.Add("bookid");

            dt2.Columns.Add("bookname");

            dt2.Rows.Add("b001", "书本1");

            dt2.Rows.Add("b002", "书本2");

 

            ds1.Tables.Add(dt1);

            ds1.Tables.Add(dt2);

            ds1.DataSetName = "方案";

            string xmlOut = XmlDatasetConvert.ConvertDataSetToXML(ds1);

            #endregion

 

            转换一个XML字符串为一个DataSet#region 转换一个XML字符串为一个DataSet

            DataSet ds2 = new DataSet();

            ds2 = XmlDatasetConvert.ConvertXMLToDataSet(xmlOut);

            Console.WriteLine("数据集名为/"{0}/",包含{1}个表", ds2.DataSetName, ds2.Tables.Count);

            foreach (DataTable dt in ds2.Tables)

            {

                PrintTableName(dt.TableName);

            };

            #endregion

 

            转换一个Dataset为一个XML文件#region 转换一个Dataset为一个XML文件

            XmlDatasetConvert.ConvertDataSetToXMLFile(ds2, "c://adadsda1.xml");

            #endregion

            

            Console.ReadLine();

        }

 

        private static void PrintTableName(string tableName)

        {

            Console.WriteLine(tableName);

        }

    }

}

Inception家族PyTorch复现:v4与ResNet变体结构解析与训练经验 卷积神经网络通过多尺度卷积并联提取图像特征,Inception系列将这一设计思想发挥到极致。在图像分类任务中,理解不同Inception结构的原理差异,是进行模型选型与复现的基础。残差连接的引入改变了梯度传播路径,使网络可以设计得更深,同时带来训练稳定性问题,如BN统计量偏移、梯度爆炸等。本文从CNN基础概念出发,梳理Inception-v4与Inception-ResNet的stem、reduction及残差缩放因子等核心模块原理,并结合PyTorch代码分析维度对齐、混合精度训练等工程实践。这些结构化设 阅读详情

相关推荐

飞书组织架构同步至LDAP:实现企业应用统一身份认证的实战指南

本文详细介绍了如何将飞书组织架构同步至LDAP,实现企业应用统一身份认证的实战方案。通过飞书开放平台API与LDAP服务的集成,企业可以大幅减少账号管理工作量,提升IT效率。文章涵盖技术架构设计、密码策略、详细配置步骤及自动化同步实现,特别适合需要统一认证体系的中大型企业。

weixin_29172201的博客 335

c++的文件输入/输出

1文件的概述 根据文件中数据的组织形式分为: 1 文本文件 文本文件又称ASCII文件,它的每一个字节存放一个ASCII代码,代表一个字符 2二进制文件 二进制文件则是把内存中的 数据,按其在内存中的存储形式原样写到磁盘上存放 问题 假定有一个整数10000, (1)按文本形式输出到磁盘上,需要占多少个字节? 答案:需要占5个字节 (2)按二进制形式输出到磁盘上有需要占多少个字节? 答案:需要占2个字节 特点 用文本形式输出时,一个字节对应一个字符,因而便于对字符进行逐个处理,也便于输出字符,缺点是占存储空

qq_50675813的博客 2193

香橙派5使用RK3588S内置NPU加速yolov5推理,实时识别数字达到50fps

香橙派5采用了RK3588S,内置的NPU达到了6Tops的算力,博主这里记录一下自己的踩坑过程,好不容易做出来的不能以后忘记了(手动狗头)。这里博主还在B站上发布了效果视频,大家感兴趣的话可以看一下。其中解决了先验框标注位置不对,或者出现非常多的框的问题

weixin_51651698的博客 2万+

XML格式与DataTable、DataSet、DataView格式的转换

今天用到一个功能:就是把从数据库读出来的内容转换成XML字符串流格式,并输出给一个功能函数。在写的过程,为方便以后的使用,我对这一功能进行分装。该类的具体格式如下:XmlConvert类命名空间:Nimeux.XmlConvertXmlToData子类函数:1、public static DataSet CXmlToDataSet(string xmlStr)将xml字符串转换成DataSet2、

Shinning's Blog 3367

如何在INCA中修改标定量的初始值,并刷回控制器

测试过程中,有些时候,标定量来不及修改,这就需要修改标定量的初始值了,又不想打开模型重新编译,因此直接在INCA中修改,然后再刷回控制器,就成了最佳选择,之前也学过,长时间不用,忘记怎么搞了,最近又用到了,这次记录一下,以后用到的时候,就不用在网上东翻西找了。截止到2023年11月24日,共找到了两种方法可以实现修改。

weixin_43406519的博客 4204

LabVIEW事件结构避坑指南:为什么你的‘确定按钮’事件有时会失灵?

本文深入探讨了LabVIEW事件结构中'确定按钮'事件失灵的常见原因及解决方案。从事件队列机制到事件类型选择,详细分析了事件丢失的五大原因,包括事件处理耗时过长、事件类型选择不当等,并提供了优化登录界面案例的实用建议。掌握这些技巧可显著提升LabVIEW用户界面的响应可靠性。

weixin_42548888的博客 355
上一篇: 创建ASP.Net自定义控件
下一篇: js常用正则表达式
blacksource
博客等级 码龄21年 66粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值