【发布时间】:2016-05-05 13:08:51
【问题描述】:
我一直在尝试了解 XML 和 CSV 解析的工作原理,但实际上还没有编写任何代码。我可能需要在正在进行的项目中解析一个 .csv 文件,我想做好准备。 (我必须将它们转换为 .ofx 文件)
我也知道那里可能有一千个 XLM 和 csv 解析器,所以我比我担心的还要好奇。我打算使用我相信微软提供的XMLReader。
假设我有以下 .csv 文件
2016 年 2 月 2 日;我的名字;我的姓 ;某地; 321654;评论;废话
有时会缺少一个字段。这意味着,就示例而言,姓氏不是强制性的,并且某些字段可以紧跟在名字之后。
我的问题是:
- 如何避免 somefield 和 lastname 之间的混淆?
我可以计算字段的总数,但在我的情况下,两个是可选的,如果只缺少一个,我无法确定是哪一个。
- 如何避免错误的“标签”?我的意思是,如果用户的第一条评论包含
;,我怎么能确定这是他评论的一部分,而不是以下标签的开头?
同样,我可以计算剩余字段并找出我在哪里,但这不包括可选字段问题。
我的问题也适用于 XML,如果用户开始以他的形式编写 XML,我该怎么办?无论我决定将表单导出为 .csv 还是 .xml,都会有问题。
现在我假设 c# Xml 阅读器/解析器足以应付它;如果是的话,我真的很好奇怎么做。
【问题讨论】:
-
缺少的字段应该仍然有没有数据的分号。 CSV 通常考虑用逗号分隔。您有一个带有分号分隔符的文件。