XML : How to avoid false separators in csv / XML

I've been trying to understand how XML and CSV parsing work, without actually writing any code yet. I might have to parse a .csv file in the ongoing project and I'd like to be ready. (I'll have to convert them to .ofx files)

I'm also aware there's probably a thousand XLM and csv parsers out there, so I'm more curious than I am worried. I intend on using the XMLReader that I believe microsoft provides.

Let's say I have the following .csv file

02/02/2016 ; myfirstname ; mylastname ; somefield ; 321654 ; commentary ; blabla

Sometimes a field will be missing. Which means, for the sake of the example, that the lastname isn't mandatory, and somefield could be right after the first name.

My questions are :

  • How do I avoid the confusion between somefield and lastname?

I could count the total number of fields, but in my situation two are optional, if there is only one missing, I can't be sure which one it is.

  • How do I avoid false "tags"? I mean, if the user first comment includes a ;, how can I be sure it's a part of his comment and not the start of the following tag?

Again, I could count the remaining fields and find out where I am, but that excludes the optional fields problem.

My questions also apply to XML, what can I do if the user starts writing XML in his form ? Wether I decide to export the form as .csv or .xml, there can be trouble.

Right now I'm on the assumption that the c# Xml reader/parser are awesome enough to deal with it ; and if they are, I'm really curious on the how.

No comments:

Post a Comment