(3)TXT转为XML
<?xml version="1.0" encoding="utf-8"?>
<bocb2e>
<head />
<trans>
<trn-b2e0035-rq>
<b2e0035-rq>
<ibknum>11111</ibknum>
<actacn>111</actacn>
<type>2001</type>
<datescope>
<from>20150320</from>
<to>20150320</to>
</datescope>
<amountscope>
<from>0</from>
<to>100</to>
</amountscope>
<begnum />
<recnum />
<direction>0</direction>
</b2e0035-rq>
</trn-b2e0035-rq>
</trans>
</bocb2e>
该段是一个XML代码,现在我们要做的是将以下的TXT文件转化为上述格式,TXT格式如下:
ibknum|actacnc|type |datescope_from|datescope_to|direction
1111 |111 |2002|20020214 |20020214 |0
首先,有两个路径,分别是读取路径和保存路径,downfolder和savefolder。我们的txt是保存在ftp服务器上的,这一点我们下一篇文章会讲述,怎么从ftp上下载一个文件。
现在我们直接从savefolder开始,也就是已经下载好的文件夹。
下面的方法现将txt转化为一个datatable,然后转换为list
private DataTable B2eRqTxtToDt(string txtpath,string strErrMsg="",string encodingCode = "GB2312", string strSplit = "|")
{if(txtpath.IndexOf("ftp")>=){
//创建ftp请求信息
var ftpRequest = new FtpClient(ftpUser, ftpPassword);
string savePath = GetDataFileSavePath();
ftpRequest.DownloadFile(savePath, txtpath, true);
}
//read first line
StreamReader objReader = new StreamReader(savePath, Encoding.GetEncoding(encodingCode));
string sLine = objReader.ReadLine();
objReader.Close();
//all column's header
string[] ColumnHeaders = sLine.ToString().Trim().Split(strSplit).Select(q => q.Trim()).ToArray();
// to datatable
//直接取datatable
DataTable dt = TxtService.TextFileLoader(savePath, "txt", ColumnHeaders, out strErrMsg, encodingCode, strSplit);
return dt;
} private List<RqList> B2eRqDtToLs(DataTable dt)
{
var date = DateTime.Now.AddDays(-).Date;
List<RqList> rqlist = new List<RqList>();
for (int i = ; i < dt.Rows.Count; i++)
{
RqList rqls = new RqList();
b2e0035_rq b2erq = new b2e0035_rq();
b2erq.ibknum = dt.Rows[i][].ToString();
b2erq.actacn = dt.Rows[i][].ToString();
b2erq.type = "";
b2erq.datescope_from = date.Date;
b2erq.datescope_to = date.Date;
b2erq.amountscope_from = null;
b2erq.amountscope_to = null;
b2erq.begnum = null;
b2erq.recnum = null;
b2erq.direction = "";
#region //这几句是读取txt文件中的.另外还有string转换为DateTime类型的。
b2erq.type = dt.Rows[i][].ToString();
b2erq.datescope_from = DateTime.Parse(dt.Rows[i][].ToString());
#endregion
rqls.head = null;
rqls.b2e0035_rq = b2erq;
rqlist.Add(rqls);
}
return rqlist;
}
将txt转化为list之后,借助写XML方法可以将其写入XML中。
public void WriteToXML(string ibknum,string actacn,string path)
{
//string path = @"C:\Users\zuomeiyan\XMLRequest.xml";
XmlTextWriter xtw = new XmlTextWriter(path, UTF8Encoding.UTF8);
var date = DateTime.Now.AddDays(-).Date;
try
{
xtw.Formatting = Formatting.Indented;
xtw.WriteStartDocument();
xtw.WriteStartElement("bocb2e"); ////head
xtw.WriteStartElement("head");
xtw.WriteEndElement();
//交易数据块
xtw.WriteStartElement("trans");
xtw.WriteStartElement("trn-b2e0035-rq");
xtw.WriteStartElement("b2e0035-rq");
xtw.WriteElementString("ibknum", ibknum);
xtw.WriteElementString("actacn", actacn);
xtw.WriteElementString("type", "");
xtw.WriteStartElement("datescope");
xtw.WriteElementString("from", date.Date.ToString("yyyyMMdd"));
xtw.WriteElementString("to", date.Date.ToString("yyyyMMdd"));
xtw.WriteEndElement();
xtw.WriteStartElement("amountscope");
xtw.WriteElementString("from", null);
xtw.WriteElementString("to", null);
xtw.WriteEndElement();
xtw.WriteElementString("begnum", null);
xtw.WriteElementString("recnum", null);
xtw.WriteElementString("direction", "");
xtw.WriteEndElement();
xtw.WriteEndElement();
xtw.WriteEndElement();
xtw.WriteEndElement();
xtw.WriteEndDocument();
}
catch { }
finally
{
xtw.Flush();
xtw.Close();
xtw.Dispose();
}
}
这样我们就完成了将一个TXT文件转化为XML格式。
(3)TXT转为XML的更多相关文章
- Java 将Word转为PDF、PNG、SVG、RTF、XPS、TXT、XML
同一文档在不同的编译或阅读环境中,需要使用特定的文档格式来打开,通常需要通过转换文档格式的方式来实现.下面将介绍在Java程序中如何来转换Word文档为其他几种常见文档格式,如PDF.图片png.sv ...
- BIP_开发案例07_将原有Report Builer报表全部转为XML Publisher形式(案例)
2014-05-31 Created By BaoXinjian
- 网站robots.txt & sitemap.xml
1. 如何查看网站的robots.txt 网址/robots.txt, 比如小米 https://www.mi.com/robots.txt sitemap.xml
- solr6.6 导入 文本(txt/json/xml/csv)文件
参照:solr6.6 导入 pdf文件 重点就是三个配置文件 1.建立的data-config.xml 内容如下: <dataConfig> <dataSource name=&qu ...
- Java 将Word转为XML,XML转为Word的方法
本文介绍将Word和XML文档进行双向互转的方法.转换时,Word支持.docx/.doc等格式. 代码环境如下: Word测试文档:.docx或.doc 编译环境:IntelliJ IDEA JDK ...
- C# 将HTML转为XML
本文以C#及VB.NET后端程序代码示例展示如何将HTML转为XML文件.转换时,调用Word API -Free Spire.Doc for .NET 提供的文档加载方法及文档保存的方法来实现.转换 ...
- Java 将HTML转为XML
本文介绍如何通过Java后端程序代码来展示如何将html转为XML.此功能通过采用Word API- Free Spire.Doc for Java 提供的Document.saveToFile()方 ...
- Java 将Excel转为XML
可扩展标记语言(XML)文件是一种标准的文本文件,它使用特定的标记来描述文档的结构以及其他特性.通常,我们可以通过格式转换的方式来得到XML格式的文件.本文,将通过Java代码介绍如何实现由Excel ...
- 使用php将数组转为XML
<?php class Array_to_Xml { private $version = '1.0'; private $encoding = 'UTF-8'; private $root = ...
随机推荐
- ASP.NET 运行机制
原本今天打算继续写ASP.NET MVC第四天的.但是由于里面涉及到asp.net运行机制的原理,如果不分析一下这里,mvc想说清楚还是挺困难的.既然要提到asp.net运行机制,所以打算还是说详细一 ...
- php字符串函数和数组函数
/验证码$str="abcdefghijklmnopqrstuvwxyz0123456789";$a=substr($str,rand(0,35),1);$b=substr($st ...
- 2140: 稳定婚姻 - BZOJ
Description 我国的离婚率连续7年上升,今年的头两季,平均每天有近5000对夫妇离婚,大城市的离婚率上升最快,有研究婚姻问题的专家认为,是与简化离婚手续有关. 25岁的姗姗和男友谈恋爱半年就 ...
- MySQL 体系架构
MySQL 体系架构 本篇文章是对mysql体系结构进行了详细的分析介绍,需要的朋友参考下 上面一图是mysql的概览图,我们从上往下看, 我们把上面一图一分为二,我们可以吧它分为两个部分, 1,是c ...
- BZOJ 4302 Buildings 解题报告
这个题好像很有趣的样子. 题目分析: 房间都是 $1\times k$ 的,也就是一条一条的.这个好像比较显然的样子. 一个房间如果要覆盖某个格子$u$,那么这个房间的面积至少为 $dis(u, Bo ...
- [转载]Windows 7 IIS (HTTP Error 500.21 - Internal Server Error)解决
今天在测试网站的时候,在浏览器中输入http://localhost/时,发生如下错误: HTTP Error 500.21 - Internal Server Error Handler " ...
- matlab字符串操作总结
matlab字符串操作总结 字符串操作总结 char(S1,S2,…)利用给定的字符串或单元数组创建字符数组double(S)将字符串转化成ASC码形式cellstr(S)利用的给定的字符数组创建字符 ...
- [转]GLES 3.0 新特性
转自: http://www.ifanr.com/131333 OpenGL ES 3.0 带来很多新特性,根据 AnandTech 的解释: 支持更多缓冲区对象.在 OpenGL ES 2.0 时中 ...
- SPOJ LGLOVE 7488 LCM GCD Love (区间更新,预处理出LCM(1,2,...,n))
题目连接:http://www.spoj.com/problems/LGLOVE/ 题意:给出n个初始序列a[1],a[2],...,a[n],b[i]表示LCM(1,2,3,...,a[i]),即1 ...
- C# get set方法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...