如何将固定宽度的文件转换为XML文件?

时间:2011-02-05 09:28:29

标签: xml

我有一个固定宽度的文本文件转换为XML。你能告诉我如何详细说明吗?

我的示例文字看起来像这样......

9621120080828200808290001084713CENTRAL TIONG NAM WAREHOUSE        086014286100501330071881000020000000000000090002PC       20.000       20.000 81E0       600.000         20.000           PC UB                      
9621120080828200808290001084713CENTRAL TIONG NAM WAREHOUSE        086014286100501330071881900001000000000000011131PC     1000.000    24000.000 8100     13680.000       1920.000 47/2008   CRTUB  00100000000003346495

从第一行我想根据长度转换文本文件..

  • File No的前5个字符,即96211

  • 接下来的8个字符Shipment Creation Date20080828

  • 接下来的8个字符到Delivery Date20080829等等......

注意:前两行被视为一条记录.....

我想要输出如下

<FileNo>96211<FileNo>
<ShipmentCreationDate>20080828<ShipmentCreationDate>
<DeliveryDate>20080829<DeliveryDate>

提前致谢!

2 个答案:

答案 0 :(得分:4)

我建议您查看FileHelpers库。

这是一个C#库,允许您非常快速地将固定宽度或分隔文件导入C#。

然后,您可以轻松转换并从C#中将这些记录作为XML进行扫描 - 完全没问题!

详细说明:

  • 使用FileHelpers,您将定义一个表示您的数据的类(其中一行)
  • FileHelpers然后将文件的内容导入该类的对象数组
  • 使用XmlSerializer,您可以轻松地将这些对象序列化为XML

应该是大约50行或更少的代码: - )

答案 1 :(得分:0)

如果您无法控制输出应用程序,则必须编写转换器工具。

采用您的首选语言并匹配XML-Lib并编写一个小应用程序来解析数据并将其写为XML。