我有一个csv文件,我遍历每个记录并单独处理每个记录。在迭代记录的过程中,CSV中的每一行最终都是没有命名空间的消息;因此我无法在地图中使用该消息。为了解决我的消息中没有命名空间的面,我将消息写入本地字符串变量,然后执行一些字符串操作来添加命名空间。必须有更好的方法来迭代csv文件并处理每条记录。
以下是我的问题的更详细说明: 我有一个我需要阅读的csv文件,然后在每条记录上执行一系列任务。我选择处理每条记录的路由是确定csv文件中的记录数,然后通过执行此xpath命令遍历每条记录: “Message_SingleRecord = xpath(Message_Document," // processingItem [" + counterString +"]");”。 这可以很好地给我每条记录,除了因为“processingItem”元素本质上是csv文档的子记录,每个Message_SingleRecord都没有命名空间,所以我无法转换/映射它。为了将命名空间添加到Message_SingleRecord,我创建了这个可怕的黑客:
Debug_SingleMessage = Message_SingleRecord;
debugVariable = Debug_SingleMessage.OuterXml;
debugVariable = debugVariable.Replace("<processingItem xmlns=\"\"",
"<ns0:processingItem xmlns:ns0=\"http://SchemaGeneration.ProcessingSingleRecord\">");
debugVariable = debugVariable.Replace("</processingItem>", "</ns0:processingItem>");
xmlDoc = new System.Xml.XmlDocument();
xmlDoc.LoadXml(debugVariable);
Message_SingleRecord = xmlDoc;
答案 0 :(得分:2)
您可以使用Flat File Disassembler将CSV文件反汇编为XML,而无需执行任何自定义逻辑。请参阅链接查看更多细节。 http://msdn.microsoft.com/en-us/library/aa577898.aspx