xml与txt文件格式互换

2023-05-16

当前遇到一个问题,需要将txt格式的文件转换为xml格式的文件,网上找了挺多的方法,也成功了,但用时比较麻烦,考虑到后期程序的需要,决定开发一个小程序。耗时两个半天,终于搞定,基本是满足需要,现将主要代码发出,附带编译完可用的exe文件。

exe文件下载路径:http://download.csdn.net/detail/bluecy/9575152


 private void button2_Click(object sender, EventArgs e)
        {
               
            string txtfilepath = this.textboxtxt.Text;
            string xmlfilepath = this.textboxxml.Text;
            converttoxml(txtfilepath, xmlfilepath);
            //读取xml文件到txtTXT文本框
            StreamReader st = new StreamReader(xmlfilepath, System.Text.Encoding.GetEncoding("GBK"));
               this.textBox.Text = st.ReadToEnd();
               st.Close();
            MessageBox.Show("转换完成!");
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string txtfilepath = this.textboxtxt.Text;
            string xmlfilepath = this.textboxxml.Text;
            converttotxt(txtfilepath, xmlfilepath);
            //读取txt文件到txtTXT文本框
            StreamReader st = new StreamReader(txtfilepath, System.Text.Encoding.GetEncoding("GBK"));
            this.textBox.Text = st.ReadToEnd();
            st.Close();
            MessageBox.Show("转换完成!");
        }

        private void converttoxml(String txtfileName, String xmlfileName)
        {
            try
            {
                //将txt内容分解为行数组
                string[] lines = File.ReadAllLines(txtfileName);
                
                String[] heads = null;
                if (lines != null && lines.Length > 0)
                {
                    //读取第一行数据,该行数据为xml文件的节点描述数据
                    heads = lines[0].Split(new string[] { " " }, StringSplitOptions.None);
                    //MessageBox.Show(heads.Length.ToString() + " " + heads[0]);
                }
                //MessageBox.Show(heads[0].ToString());
                StringBuilder sb = new StringBuilder();
                sb.Append("<?xml version=\"1.0\"  encoding=\"gbk\"?>").Append(Environment.NewLine).Append("<dataRoot>").Append(Environment.NewLine);
                //生成xml节点
                //MessageBox.Show(sb.ToString());
               for (int i = 1; i < lines.Length; i++)
                {
                      if (lines[i] == null || lines[i].Trim().Length < 1)
                        {
                        continue;
                        }
                  
                    string[] info = lines[i].Split(new string[] { " " }, StringSplitOptions.None);
                   
                    sb.Append(createNode(heads, info));
                }
               
                sb.Append("</dataRoot>");
                StreamWriter sw = new StreamWriter(xmlfileName, false);
             
                sw.WriteLine(sb + " ");
                sw.Close();
                sw.Dispose();
                           
            }
            catch (Exception exp)
            {
                MessageBox.Show(exp.Message);
            }
        }

        private String createNode(String[] head, String[] info)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("<record>").Append(Environment.NewLine);
            for (int i = 0; i < head.Length; i++)
            {
                sb.Append("<" + head[i] + ">" + info[i] + "</" + head[i] + ">").Append(Environment.NewLine);
            }
            sb.Append("</record>").Append(Environment.NewLine);
            return sb.ToString();
        }

        private void converttotxt(String txtfilepath, String xmlfilepath)
        {
            //xml to dataset
            try
            {
                DataSet xmlds = new DataSet();
                //读取XML到DataSet 
                StreamReader sr = new StreamReader(xmlfilepath, Encoding.Default);
                xmlds.ReadXml(sr);
                sr.Close();
                //dataset to txt
                StreamWriter sw = new StreamWriter(txtfilepath, false, Encoding.Default);
                String DataRow = "";
                for (int i = 0; i < xmlds.Tables[0].Columns.Count; i++) //获取列名 
                {
                    DataRow += xmlds.Tables[0].Columns[i].ColumnName;
                    if (i < xmlds.Tables[0].Columns.Count - 1) DataRow += " ";
                }
                sw.WriteLine(DataRow);
                for (int i = 0; i < xmlds.Tables[0].Rows.Count; i++) //获取数据 
                {
                    DataRow = "";
                    for (int j = 0; j < xmlds.Tables[0].Columns.Count; j++)
                    {
                        DataRow += xmlds.Tables[0].Rows[i][j].ToString();
                        if (j < xmlds.Tables[0].Columns.Count - 1) DataRow += " ";
                    }
                    sw.WriteLine(DataRow);
                }
                sw.Close();
            }
            catch
            {
                MessageBox.Show("XML文件格式错误!");
                //不是xml文件,返回
            }
        }


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

xml与txt文件格式互换 的相关文章

  • 为什么 XSD 中的“maxLength”属性不限制返回的字符数?

    我有一个 XSD 元素定义如下
  • 将 XML 从网站解析到 Android 设备

    我正在启动一个 Android 应用程序 它将解析来自网络的 XML 我创建了一些 Android 应用程序 但它们从未涉及解析 XML 我想知道是否有人对最佳方法有任何建议 这是一个例子 try URL url new URL your
  • Inno Setup - XML 编辑 XPath 请求失败,并出现“运行时 NIL 接口异常”

    我已经为我的应用程序创建了一个 Inno Setup 脚本 其中我尝试在安装后步骤中编辑一些 XML 配置 主要是连接字符串 我有一些非常简单的 XPath 请求 但在使用时出现运行时异常selectSingleNode然而getEleme
  • 通过 Python 的 elementtree 替换作为数字字符引用一部分的 & 符号

    我正在使用 Python 的 elementtree 模块来编写一些 XML 我正在使用 Python 2 7 和 3 2 我的一些元素的文本字段包含数字字符引用 然而 一旦我使用 elementtree 的tostring字符引用中的所有
  • XML 到 YAML 转换

    我怎样才能把它转换成yml
  • 在 Google 地图片段中扩充 XML 时出错

    尝试使用片段显示谷歌地图 使用了以下内容page https developers google com maps documentation android start作为教程 我收到异常 错误膨胀类片段 1 导入jar google p
  • 如何读取 XML 文件并从中获取值以在 PHP 编码的 HTML 页面中显示

    我有一个 XML 文件 其中有一些重复的标签 其中包含不同的值 我需要获取这些值并显示在我的网页中 请帮助我得到这个 如果您使用 PHP5 可以查看 SimpleXML 您可以在这里找到介绍教程 http www w3schools com
  • 如何从另一个xml文件动态更新xml文件?

    我想从另一个 xml 文件更新 xml 文件 我使用了一个 xml 文件 如下所示 one xml
  • Java:从元素创建 DOM 元素,而不是文档

    如您所知 在 Java 中创建 Dom 元素的正确方法是执行以下操作 import org w3c dom Document import org w3c dom Element Document d Element e e d creat
  • Python BeautifulSoup XML 解析

    我编写了一个简单的脚本来使用 BeautifulSoup 模块解析 XML 聊天日志 标准 soup prettify 工作正常 只是聊天日志中有很多绒毛 您可以在下面看到我正在使用的脚本代码和一些 XML 输入文件 Code import
  • 使用 powershell 编辑 XML

    好吧 我感觉自己像个大白痴 为了工作中的管理目的 我使用 Powershell 已经有一段时间了 也就是说 编写脚本不是我的强项 现在 我正在尝试编写一个 PS 脚本 将一个部分添加到一堆机器上的 XML 中 以添加设置来解决我们在某个应用
  • 如何从 Java 生成 RTF?

    我正在开发一个基于网络的工具 我们可以在其中提供定制打印 目前我们用 Java 构建了一个 XML 结构 将其提供给XMLmind XSL FO 转换器 http www xmlmind com foconverter 以及定制的 XSL
  • 使用 xsd.exe 工具从具有多个命名空间的 XML 文件生成 XSD 文件

    我想做的事 我正在尝试为现有 XML 文件生成 XSD 文件 我正在使用xsd exe工具 随 Visual Studio 一起提供 XML 文件中的某些元素是命名空间限定的 在某些情况下 本地名称是相同的 如下所示
  • 横向模式下视频视图不是全屏

    我正在使用用 xml 设计的视频视图 该视频在纵向模式下为全屏 但当切换到横向模式时 它会左对齐 并且宽度和高度都会换行 而不是全屏 我参考了这些 但仍然没有解决这个问题 全屏视频视图未居中 https stackoverflow com
  • XML 模式文件中 xs 和 xsd 之间的区别?

    两者有什么区别xs and xsdXML 模式文件中的前缀 From w3 org 上的 XSD 1 0 规范 http www w3 org TR xmlschema 1 Instance Document Constructions 模
  • 克隆 dom.Document 对象

    我的目的是将xml文件读入Dom对象 编辑dom对象 其中涉及删除一些节点 完成此操作后 我希望将 Dom 恢复到其原始状态 而不实际解析 XML 文件 无论如何 我可以克隆第一次解析 xml 文件后获得的 dom 对象吗 这个想法是避免一
  • XML 和 INI 哪个更快?

    我想知道 XML 是否比 INI 更快 反之亦然 我正在开发一个包含许多文件的网站 这个问题与我的问题有关关于包含许多文件 https stackoverflow com questions 7777522 too many include
  • 使用 NSXMLParser 在 Swift 中解析分层 XML

    我确实在以我实际可以使用的形式获取分层 XML 值时遇到问题 因此我们将不胜感激 我对 Swift 和 IOS 开发还很陌生 所以说实话我并不完全理解解析器 但我希望在这之后我能理解 下面是我尝试解析的示例 XML 它来自肥皂网络服务 连接
  • 复制除根节点和属性 XSLT 之外的 XML 文件内容

    我正在处理一个小的 XSLT 文件来复制 XML 文件的内容并删除声明和根节点 根节点具有名称空间属性 我目前正在使用它 除了现在名称空间属性现在被复制到直接子节点之外 这是到目前为止我的 xslt 文件 没什么大或复杂的
  • XmlDocument Save 使文件保持打开状态

    我有一个简单的 C 函数 可以创建一个基本的 XML 文件并保存 private void CreateXMlFile string Filename string Name string Company XmlDocument doc n

随机推荐

  • jetson 系列 安装完jetpack/已安装 tensorrt 在虚拟环境中仍然报 no module named tensorrt >> 在虚拟环境建立软连接

    当使用虚拟环境时 xff0c 需要考虑 cv2 和 tensorrt 是一样的 更新 xff1a cv2 应该是对的 tensorrt的处理是错的 xff0c 在 使用 trt时很多方法都找不到 正确的加入虚拟环境的方法 xff1a htt
  • Tesla T4 在Ubuntu18.04上的安装使用

    Tesla T4 在Ubuntu18 04上的安装使用 在默认情况下 xff0c 安装 tesla T4 的驱动 xff0c 尝试很多版本都无法正确安装 xff0c 安装完之后会出现 xff1a nvidia smi NVIDIA SMI
  • cannot import name ‘gcd’ from ‘fractions’

    cannot import name gcd from fractions 在这里插入图片描述 在3 9
  • 【Java 实战】通过Redis 和 MQ 简单实现秒杀功能

    项目场景 实现一个商品秒杀的功能 能后台自定义秒杀时间段 商品库存等信息 一 设计思路 这里简单分享下思路 1 限流 秒杀时大量用户会在同一时间同时进行抢购 网站瞬时访问流量激增 由于只有少部分用户能够秒杀成功 所以要限制大部分流量 只允许
  • mariadb设置默认字符编码

    mariadb version 10 3 7 mariadb安装目录下找到data文件夹 xff0c 下面有个my ini文件 xff0c 该文件为mariadb服务启动加载文件 由于之前各种原因 xff0c 也搜索过博文 xff0c 但是
  • 多线程编程以及线程池相关记录

    Java 中经常需要用到多线程来处理一些业务 xff0c 非常不建议单纯使用继承Thread或者实现Runnable接口的方式来创建线程 xff0c 那样势必有创建及销毁线程耗费资源 线程上下文切换问题 同时创建过多的线程也可能引发资源耗尽
  • Spring Application Context 注入问题

    熟悉spring bean生命周期的都知道 xff0c 在其生命周期中有个很重要的接口 xff1a Aware 如果要注入application xff0c 可以用如下方式 64 Component public class SpringC
  • 解决我遇到的apt-get ,(Depends: AAA(>= BBB)but it is not going to install)的问题

    因为我直接把ubuntu16的源复制给了18的系统 xff0c 报错 xff0c 网上查说要换源我没懂啥意思 原来每个版本的源不一样 xff0c 这里贴一下清华的16和18的源 修改源文件source list xff08 1 xff09
  • IIS 网页在每天第一次打开慢的原因及解决

    今天碰到一个问题 xff0c 我们的网页在早晨的时候打开总是很慢 xff0c 其它时间有时也比较慢 开始认为是服务器性能的问题 xff0c 监测服务器资源使用后 xff0c 发现服务器的资源没有在高水平运行 xff0c 可以确定不是服务器硬
  • 【考研】操作系统——高速缓存与缓冲区、设备分配的数据结构

    一 磁盘高速缓存 操作系统中使用磁盘高速缓存技术是指利用内存中的存储空间来暂存从磁盘中读出的一系列盘块中的信息 xff0c 用以提高磁盘的 I O 速度 xff0c 对高速缓存复制的访问要比原始数据访问更为高效 二 缓冲区 xff08 一
  • Linux 系统的centos8安装jdk 1.8 教程

    卸载openjdk 查看rpm qa grep jdk 卸载yum y remove java 1 7 0 openjdk 1 7 0 75 2 5 4 2 el7 方法一 安装包手动安装 1 下载并上传 官网下载 我的备份 将我们下载好的
  • 解决Matlab2014A在win10下字体模糊的问题

    右击快捷方式 xff0c 进入属性设置 兼容性 更高高DPI设置 高DPI缩放替代 打钩 xff0c 下拉菜单选择应用程序
  • android工程师开发IOS oc浅析(14)之MRC与ARC

    1 为什么要进行内存管理 管理的是什么 内存管理 管理的是任何继承自NSObject的对象 因为一般的其他基本数据类型的局部变量都是储存在栈区的 当代码块执行结束 代码块中的局部变量出作用于就会被回收 而OC对象则不一样 OC对象类型是程序
  • Github个人主页绑定域名实操

    由于笔者在上传文件到github仓库 xff0c 由于相关操作经常会间歇性遗忘 xff08 还是不够熟悉惹的祸啊 xff09 xff0c 或者部分解决方案里并没有明确说明指令所表示的含义 xff0c 所以在百度了许多许多的相关文章和blog
  • spring 注解作用与解析过程

    64 PostConstruct 作用 xff1a 初始化方法之前执行 xff0c 作用于方法 xff0c 无方法上修饰符限制 解析过程 xff1a CommonAnnotationBeanPostProcessor xff08 BeanF
  • 关于Goland调试不可以使用

    今天在使用Goland时发现Goland断点调试无法使用 如下图所示 在找了半天之后在某论坛找到了原因 结果是360把Go的程序截拦导致无法断点调试 关闭360 重新打开文件即可使用
  • MySQL导入含有触发器的sql脚本报错解决方案

    报错码 ERROR 1419 HY000 You do not have the SUPER Privilege and Binary Logging is Enabled 解决方案 1 Linux下执行sql脚本 我们一般在linux服务
  • maven 本地仓库的配置以及如何修改默认.m2仓库位置

    本人转载于http blog csdn net qq 27093465 article details 52957253 以下为转载内容 xff1a 本地仓库是远程仓库的一个缓冲和子集 xff0c 当你构建Maven项目的时候 xff0c
  • onNewIntent 作用

    当Activity启动模式为singleTask时 如果在栈中已经有该Activity的实例 xff0c 就重用该实例 会调用实例的onNewIntent 不会调用onCreate方法 重用时 xff0c 会让该实例回到栈顶 xff0c 因
  • xml与txt文件格式互换

    当前遇到一个问题 xff0c 需要将txt格式的文件转换为xml格式的文件 xff0c 网上找了挺多的方法 xff0c 也成功了 但用时比较麻烦 xff0c 考虑到后期程序的需要 xff0c 决定开发一个小程序 耗时两个半天 xff0c 终