我想知道是否可以使用XSL将固定长度的文本文件转换为XML文件。
特别针对以下示例。
我有一个看起来像这样的文本文件: 我用了 。代表显示目的的空间
.....1.....0.....0.....0.......0.......0.......0
.....2.....1.....0.....0.......0.......0.......0
.....3.....1.....2.....3.......0.......0.......0
.....4.....1.....2.....3.......1.......2.......3
使用偏移量和字段长度分隔字段, 我的推测:
#MID# offset = 0 length = 6
#TID1# offset = 7 length = 6
#TID2# offset = 13 length = 6
#TID3# offset = 19 length = 6
#TITLE1# offset = 25 length = 8
#TITLE2# offset = 33 length = 8
#TITLE3# offset = 41 length = 8
数据表将如下所示:
##MID##TID1##TID2##TID3##TITLE1##TITLE2##TITLE3#
# 1# 0# 0# 0# 0# 0# 0#
# 2# 1# 0# 0# 0# 0# 0#
# 3# 1# 2# 3# 0# 0# 0#
# 4# 1# 2# 3# 1# 2# 3#
################################################
我想通过使用C#.net和XSLT将传入的文本文件转换为XML文件(我猜微软没有提供XSLT 2.0处理器,在这种情况下只能使用XSLT 1.0,Saxon 9.x和XQSharp只是花费太多)
目标输出XML就像
<MID value='1'>
</MID>
<MID value='2'>
<TID value='1'>
</TID>
</MID>
<MID value='3'>
<TID value='1'>
</TID>
<TID value='2'>
</TID>
<TID value='3'>
</TID>
</MID>
<MID value='4'>
<TID value='1'>
<TID value='1'>
</TID>
</TID>
<TID value='2'>
<TID value='2'>
</TID>
</TID>
<TID value='3'>
<TID value='3'>
</TID>
</TID>
</MID>
非常感谢
答案 0 :(得分:1)
XSLT 1.0需要XML文档作为输入。
如果您有一个可以读取文件并将其作为XML呈现的解析器,根据XSLT处理器,您仍然可以将非XML格式提供给转换:例如。读取CSV,JSON等,并将其作为一系列解析事件传递给XSLT引擎。
您的任务是读取您的CSV输入并将其转换为XML。你可以自己做,但随后任务就解决了,你不需要XSLT步骤。