`
isiqi
  • 浏览: 16495854 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

c# txt文本转xml文本

阅读更多

现在很多软件都是以xml文件作为数据源,而很多数据工具如pb等却只能另存为txtexcel等格式,为此需要一工具能将txt文本转换成xml文件。google了一下,没找到合适的,冲动之下用C#写了一个txt文本转xml格式文本的小程序,代码如下。

新建一个windows应用程序,命名该窗体为FrmTxtXml,在该窗体中添加:

一个按钮 toolStripOpentext为“打开文件”;

一个按钮 toolStripConverttext为“转换”;

一个按钮 toolStripSaveastext为“另存为”;

一个文本框” txtTXT”,显示txt文本;

一个文本框”txtXML5”,显示xml格式文本;

public partial class FrmTxtXml : Form

{

String txtContent = String.Empty;

//

public FrmTxtXml()

{

InitializeComponent();

}

//打开txt文件

private void toolStripOpen_Click(object sender, EventArgs e)

{

using (OpenFileDialog fileDialog = new OpenFileDialog())

{

fileDialog.Filter = "文本文件(*.txt)|*.txt";

if (fileDialog.ShowDialog() == DialogResult.OK)

{

String fileName = fileDialog.FileName;

if (!String.IsNullOrEmpty(fileName))

{

using (StreamReader st = new StreamReader(fileName, System.Text.Encoding.GetEncoding("GBK")))

{

txtContent = st.ReadToEnd();

//读取txt文件到txtTXT文本框

this.txtTXT.Text = txtContent;

st.Close();

}

}

}

}

}

//txt文件内容转换成xml格式内容

private void toolStripConvert_Click(object sender, EventArgs e)

{

try

{

//txt内容分解为行数组

String[] lines = this.txtTXT.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None);

String[] heads = null;

if (lines != null && lines.Length > 0)

{

//读取第一行数据,该行数据为xml文件的节点描述数据

heads = lines[0].Split(new string[] { "\t" }, StringSplitOptions.None);

//MessageBox.Show(heads.Length.ToString() + " " + heads[0]);

}

//

StringBuilder sb = new StringBuilder();

sb.Append("<?xml version=\"1.0\" encoding=\"gbk\"?>").Append(Environment.NewLine).Append("<dataRoot>").Append(Environment.NewLine);

//生成xml节点

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[] { "\t" }, StringSplitOptions.None);

sb.Append(createNode(heads, info));

}

sb.Append("</dataRoot>");

this.txtXML.Text = sb.ToString();

}

catch (Exception exp)

{

MessageBox.Show(exp.Message);

}

}

//产生xml节点

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();

}

//txtXML文本框内容另存为xml文件

private void toolStripSaveas_Click(object sender, EventArgs e)

{

try

{

String fileName = "";

using (SaveFileDialog fileDialog = new SaveFileDialog())

{

fileDialog.Filter = "XML数据文件(*.xml)|*.xml";

if (fileDialog.ShowDialog() == DialogResult.OK)

{

fileName = fileDialog.FileName;

if (!String.IsNullOrEmpty(fileName))

{

FileStream fs = new FileStream(fileName, FileMode.Create);

//获得字节数组

byte[] data = System.Text.Encoding.GetEncoding("GBK").GetBytes(this.txtXML.Text);

//开始写入

fs.Write(data, 0, data.Length);

//清空缓冲区、关闭流

fs.Flush();

fs.Close();

}

}

}

MessageBox.Show(String.Format("文件成功保存到{0}", fileName));

}

catch (Exception exp)

{

MessageBox.Show(exp.Message);

}

}

}

运行程序,可将txt文本转换为下述所示xml内容。

emp_no emp_name emp_xb emp_bir

11865 张三 1 1984/11/24 00:00:00

10 张三李 0 1963/7/16 00:00:00

100 张四李 0 1958/1/13 00:00:00

1000 张五李 1 1976/1/12 00:00:00

100001 张六李 0 1977/1/12 00:00:00

100002 张七李 1 1978/1/12 00:00:00

<?xml version="1.0" encoding="gbk"?>

<dataRoot>

<record>

<emp_no> 11865</emp_no>

<emp_name>张三</emp_name>

<emp_xb>1</emp_xb>

<emp_bir>1984/11/24 00:00:00</emp_bir>

</record>

<record>

<emp_no>10</emp_no>

<emp_name>张三李</emp_name>

<emp_xb>0</emp_xb>

<emp_bir>1963/7/16 00:00:00</emp_bir>

</record>

<record>

<emp_no>100</emp_no>

<emp_name>张四李</emp_name>

<emp_xb>0</emp_xb>

<emp_bir>1958/1/13 00:00:00</emp_bir>

</record>

<record>

<emp_no>1000</emp_no>

<emp_name>张五李</emp_name>

<emp_xb>1</emp_xb>

<emp_bir>1976/1/12 00:00:00</emp_bir>

</record>

<record>

<emp_no>100001</emp_no>

<emp_name>张六李</emp_name>

<emp_xb>0</emp_xb>

<emp_bir>1977/1/12 00:00:00</emp_bir>

</record>

<record>

<emp_no>100002</emp_no>

<emp_name>张七李</emp_name>

<emp_xb>1</emp_xb>

<emp_bir>1978/1/12 00:00:00</emp_bir>

</record>

</dataRoot>

分享到:
评论

相关推荐

    C# TXT转换xml

    本主题聚焦于使用C#将TXT文本文件转换为XML文件。TXT文件通常包含纯文本,而XML(eXtensible Markup Language)则是一种结构化数据格式,用于存储和传输数据,具有自描述性和严格的规则。 首先,让我们理解TXT到XML...

    txt数据转换为xml数据的小工具

    标题中的“txt数据转换为xml数据的小工具”指的是一个实用程序,它的主要功能是将文本文件(.txt)中的数据转换成结构化的XML(可扩展标记语言)文件。这种转换对于那些需要处理结构化数据,特别是在编程环境中工作...

    C# 文本的旋转显示

    在C#编程中,文本的旋转显示是一种常见的需求,尤其在图形用户界面(GUI)设计、游戏开发或者数据可视化中。这种技术可以让文本按照特定的角度进行旋转,为用户界面增添动态效果或者提升信息呈现的清晰度。下面我们...

    C# Excel转Xml工具

    本项目涉及的知识点是使用C#实现Excel到XML的转换,这在数据处理和信息交换中非常常见,因为XML是一种结构化的数据格式,易于解析和共享。 首先,我们需要了解如何在C#中操作Excel文件。Microsoft提供了`Microsoft....

    C# 生成xml文件,编码为utf-8方法

    C# 生成 XML 文件,编码为 UTF-8 方法 C# 生成 XML 文件,编码为 UTF-8 方法是指在 C# 编程语言中,使用特定的方法和类来生成 XML 文件,并将其编码为 UTF-8 编码格式的过程。这种方法常用于数据交换、配置文件、...

    C#读取txt文件 C#读取xml文件

    在C#编程中,读取文本文件(如.txt格式)和XML文件是非常常见的操作,尤其在数据处理和信息存储方面。下面将详细讲解如何使用C#进行这两种类型的文件读取。 首先,我们来讨论如何使用C#读取TXT文件。在C#中,可以...

    C# LinqXML将XML文件中的属性转换为元素

    在这个场景中,我们将探讨如何使用C#的LINQ to XML来将XML文件中的属性转换为元素。 首先,让我们了解XML的基本结构。XML是一种标记语言,用于存储和传输数据。数据以元素的形式存在,元素可以有子元素、文本内容和...

    字符串转化为XML文件

    XML文件的基本结构包括声明、元素、属性和文本。 * 声明:XML文件的第一行是声明,用于指定XML文件的版本和编码方式。 * 元素:XML文件由元素组成,元素可以包含文本、属性和其他元素。 * 属性:元素可以具有属性,...

    C#图片转xml

    首先,我们要理解图片是由像素组成的二进制数据,而XML是基于文本的标记语言,用于描述数据。将图片转换为XML,我们需要将图片的像素数据编码为XML元素和属性。以下是一些关键步骤和知识点: 1. **读取图片**: 使用...

    C# WinForm 读写XML文件

    在C# WinForm应用程序中,读写XML文件是常见的数据操作任务。XML(eXtensible Markup Language)是一种用于存储和传输数据的标准格式,它结构清晰、易于解析且跨平台。下面将详细介绍如何使用C# WinForm来实现XML...

    C#将List与xml互转_支持简单类型.rar

    这个压缩包"**C#将List与xml互转_支持简单类型.rar**"包含了一个示例文本文件"**C#将List与xml互转_支持简单类型.txt**"和一个可能用于测试的数据文件"**1.xls**"。 首先,让我们理解List和XML的基本概念。List是...

    C#解析XML文件并用WinForm显示

    XML文档由元素、属性、文本节点等组成,它们以层次结构的方式组织数据。要解析XML文件,C#提供了System.Xml命名空间,其中包含如XmlDocument、XmlNode、XmlElement等类,用于读取、操作和解析XML数据。 1. **使用...

    Unity/C#的Excel转二进制和XML工具

    "Unity/C#的Excel转二进制和XML工具"就是为了解决这个问题而设计的,它允许开发者将Excel表格数据转换为二进制或XML格式,以便在游戏中更高效地存储和加载。这个工具的使用基于C#语言,并且利用了EPPlus库,一个强大...

    c#读取txt,xml,excel中的数据

    TXT文件是最简单的文本格式,C#中可以使用`System.IO`命名空间的`StreamReader`类来读取。例如: ```csharp using System.IO; string filePath = @"C:\path\to\file.txt"; using (StreamReader reader = new ...

    C#读取DOC PPT EXCEL转换为文本TXT

    本主题聚焦于使用C#处理Office文档,包括DOC(Word文档)、PPT(PowerPoint演示文稿)和EXCEL(电子表格),并将其内容转换成纯文本TXT格式。这种操作在数据提取、文本分析或跨平台兼容性需求时非常有用。 首先,让...

    C#,读取Xml生成菜单.txt

    XML转菜单的递归实现 #### 4.1 XmlToMenu 方法 - **功能**:递归地将XML节点转换为菜单项。 - **参数**: - `XmlNode Node`:当前处理的XML节点。 - `MenuItem Menu`:当前菜单项,用于添加子菜单。 - **实现...

    C# 方式生成xml格式字符串

    生成xml格式字符串、序列化XML 对象=》XML文本、反序列化 XML文本=》对象 等方法,对象和xml之间的相互转换、datatable方式转换为xml文本的工具类方法 C#语言

    vs2010 C#用XML实现中英文界面转换

    接下来,在C#代码中,我们需要读取这个XML文件并根据用户的语言选择加载相应的文本。可以使用`XDocument`类来解析XML文档: ```csharp using System.Xml.Linq; // 加载XML文件 XDocument doc = XDocument.Load(...

    XML_CSharp.zip_C# XML_c# xml 注释_c# xml多个字节_c#的xml_xml与C#

    XML是可扩展标记语言(Extensible Markup Language)的缩写,是一种用于存储和传输数据的文本格式,尤其在软件开发中被广泛应用于数据交换和配置文件。C# 是微软开发的一种面向对象的编程语言,它提供了强大的XML...

    C# 用XML文件实现多语言切换.rar

    这个主题主要涉及如何利用XML文件存储不同语言的文本资源,然后在C#程序中动态加载和切换这些资源,以实现用户界面的本地化。下面我们将详细探讨这一过程。 1. **XML文件结构**: XML文件是一种结构化的数据存储...

Global site tag (gtag.js) - Google Analytics